String主要方法及用法

来源:互联网 发布:企业域名和价格 编辑:程序博客网 时间:2024/04/30 23:34

在Java中,String类是必不可少的,熟练掌握String类的方法之后,我们会发现原来很难处理的字符串,字符问题交给String类方法是如此的简单

好了,废话不多说,下面开始正式介绍String类的主要方法

1、字符串与字符数组的转换

public class TestDemo {public static void main(String[] args) {String str1 = "hello";char ch[] = str1.toCharArray();//toCharArray()将字符串转换为字符数组for(int i = 0; i < ch.length; i++){//循环输出字符数组的每一个字符System.out.print(ch[i]+"\t");}System.out.println("");String str2 = new String(ch); //将字符数组的所有成员转换为字符串String str3 = new String(ch,0,3);//将字符数组的前三个字符转换为字符串System.out.println(str2);System.out.println(str3);}}

结果显示如下:


2、取出字符串中指定位置的字符

代码比较简单(说明,本文的所有的字符串操作如不重新定义,则都是基于toCharArray()中定义的str1为准)

System.out.print(str1.charAt(3));//取出字符串中指定位置的字符
结果显示如下:

3、字符串与byte数组的转换

实例如下:

byte[] b = str1.getBytes();//将字符串变为byte数组System.out.println(new String(b));//将byte数组的全部内容转换为字符串System.out.println(new String(b,1,3));//将byte数组的部分内容转换为字符串
结果显示为:


4、取得一个字符串的长度

String类使用的是length()方法,在这里要将String类的length()方法与数组的length属性区分开来

实例如下:

System.out.println(str1+"的长度为"+str1.length());

结果显示如下:


5、查找一个指定的字符串子否存在

在String中使用indexof()方法,可以返回指定字符串的位置,如果不存在则返回-1

验证以上方法

String str1 = "abcdefcgh";System.out.println(str1.indexOf("c"));//查到返回位置System.out.println(str1.indexOf("c", 3));//从第四个位置开始查起,查到返回位置System.out.println(str1.indexOf("X"));//没有查到返回-1
显示结果如下:


6、去掉左右空格

在实际开发中,会经常遇到去掉空格的问题,trim()方法很好的解决了这个问题

验证代码如下:

String str1 = "   hello   ";System.out.println(str1.trim());
结果显示为:


7、字符串截取

在String中提供了两个substring()方法,一个是从指定位置截取到字符串结尾,一个是截取指定范围的内容

演示代码片段如下:

String str1 = "hello world";System.out.println(str1.substring(6));//从第七个位置开始截取System.out.println(str1.substring(0,5));//截取0~5个位置的内容
结果为:


8、按照指定的字符串拆分字符串

在String中通过split()方法来进行字符串的拆分操作,拆分的数据将以字符串数组的形式返回

验证代码如下:

String str1 = "hello my baby";String[] s = str1.split(" ");//按空格进行字符串的拆分for(String x : s){//foreach 循环输出数组System.out.println(x);}

结果为:

9,、字符的大小写转换也是我们经常需要对字符串的处理,此时就可以用toUpperCase()和toLowerCase()来进行处理

代码如下:

System.out.println("将\"hello world!\"转换为大写为:"+"hello world".toUpperCase());System.out.println("将\"HELLO WORLD!\"转换为小写为:"+"HELLO WORLD".toLowerCase());
结果显示如下:


10、判断是否以指定的字符串开头或结尾

String类使用startsWith()和endsWith()来解决这个问题

验证以上方法:

String str1 = "***hello";String str2 = "world###";if(str1.startsWith("***")){System.out.println("\""+str1+"\""+"以***开头");}if(str2.endsWith("###")){System.out.println("\""+str2+"\""+"以###结尾");
}

结果显示如下:


11、不区分大小写进行字符串比较

在String类中可以通过equals()方法进行字符串内容比较,但这种方法是进行大小写区分的,如果要完成大小写不区分的比较则可以使用equalsIgnoreCase()方法

演示代码如下:

String str1 = "HELLO";String str2 = "hello";System.out.println("\"HELLO\"equals\"hello\""+str1.equals(str2));System.out.println("\"HELLO\"equalsIgnoreCase\"hello\""+str1.equalsIgnoreCase(str2));
结果显示为:

12、将一个指定的字符串替换成其他的字符串

String的replaceALL()很好的解决了这个问题

验证以上方法:

String str = "hello";String newStr = str.replaceAll("l", "**");System.out.println("替换之后的结果为"+newStr);
结果为:

好了基本的方法就以上这些,可能有些不全


*****以下为一道比较常见的字符串处理的题目*****

演示代码如下:

import java.util.Arrays;public class TestDemo1 {public static void main(String[] args) {/* * 问题描述: * 将一个字符串长句按照它的首字母的Assii码排序后重新输出*/String str = "Good Good Study Day Day Up!";String[] s = str.split(" ");Arrays.sort(s);String newstr = "";for(int i = 0; i < s.length; i++){newstr = newstr + s[i] + " ";  }System.out.println("newstr是"+newstr);}}
显示结果如下

以上没考虑字符串引用改变问题,开发中最好用StringBuffer

以下为演示代码:

String str = "Good Good Study Day Day Up!";String[] s = str.split(" ");Arrays.sort(s);StringBuffer sb = new StringBuffer();for(int i = 0; i < s.length; i++){sb.append(s[i]+" ");}System.out.println("newstr是"+sb);

显示结果:





0 0