public class StringDemo { public static void main(String[] args) { new StringDemo(); } public StringDemo(){ // init(); // compare(); // concat(); // copy(); // find(); // modify(); } /** * 演示String类的初始化 */ private void init(){ //因为Java 程序中的所有字符串字面值都作为String类的实例实现。 //因此实际上是将另一个String对象赋值给s1 String s1 = "Hello,java!"; //声明一个字符串,然后为其赋值 String s2; s2 = "Hello,java!"; //使用String()构造方法,创建一个空字符串,然后给它赋值 String s3 = new String(); s3 = "Hello,java!"; //String(String original) //新创建的字符串是该参数字符串的副本。 String s4 = new String("Hello,java!"); //String(char[] value) //通过字符数组来分配一个新的 String。 char[] c1 = {'H','e','l','l','0',',','j','a','v','a','!'}; String s5 = new String(c1 ); //String(char[] value, int offset, int count) //分配一个新的 String,它包含取自字符数组参数一个子数组的字符。 //offset 参数是子数组第一个字符的索引,count 参数指定子数组的长度。 String s6 = new String(c1,0,11); //打印6个String对象 System.out.println("s1:"+s1); System.out.println("s2:"+s2); System.out.println("s3:"+s3); System.out.println("s4:"+s4); System.out.println("s5:"+s5); System.out.println("s6:"+s6); } /** * 演示String对象的大小比较 */ private void compare(){ String s1="aaaa"; String s2="aaaa"; String s3="AAAA"; String s4="abcd"; //equals()方法 //当且仅当该参数不为 null,并且是与此对象表示相同字符序列的 String 对象时,结果才为 true。 System.out.println("s1:aaaa与s2:aaaa比较,是否相等/t"+s1.equals(s2)); //equalsIgnoreCase() //将此 String 与另一个 String 比较,不考虑大小写。 System.out.println("s1:aaaa与s3:AAAA比较,是否相等/t"+s1.equalsIgnoreCase(s3)); //compareTo() //s1. compareTo (s3) -----如果s1<s3,则返回小于0的值;如果s1=s3,则返回0;如果s1>s3,则返回大于0的值 //返回的值:this.charAt(k)-anotherString.charAt(k) System.out.println("s1:aaaa与s3:AAAA比较,是否相等/t"+s1.compareTo(s3)); System.out.println("s1:aaaa与s4:abcd比较,是否相等/t"+s1.compareTo(s4)); //regionMatches(int toffset, String other, int ooffset, int len) //toffset - 字符串中子区域的起始偏移量;other - 字符串参数; //ooffset - 字符串参数中子区域的起始偏移量;len - 要比较的字符数。 //如果此字符串的指定子区域完全匹配字符串参数的指定子区域,则返回 true;否则返回 false。 System.out.println("s1:aaaa与s3:AAAA比较,是否相等/t"+s1.regionMatches(0, s3, 0, 3)); //regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) //ignoreCase - 如果为 true,则比较字符时忽略大小写。 System.out.println("s1:aaaa与s3:AAAA比较,是否相等/t"+s1.regionMatches(true,0, s3, 0, 3)); } /** * 演示String对象的字符串连接 */ private void concat(){ //可以使用两种方法将字符串连接起来:+操作符、用String类的concat方法。 //Concat方法的调用形式如下:s1.concat(s2) -- 将两个字符串连接起来。 String s1="Hello"; String s2=s1+","; String s3=s2.concat("Java"); String s4=new String("!"); String s5=s3.concat(s4); System.out.println("连接而成的字符串是"+s5); } /** * 演示String对象的字符串拷贝 */ private void copy(){ String s1=new String( ); char[] data ={ 'a', 'b', 'c', 'd', 'e', 'f'}; //public static String copyValueOf(char[] data) //返回指定数组中表示该字符序列的 String。 s1=String.copyValueOf(data); System.out.println("使用copyValueOf方法1:s1="+s1); //copyValueOf(char[] data, int offset, int count) //offset - 子数组的初始偏移量;count - 子数组的长度。 s1=String.copyValueOf(data,2,3); System.out.println("使用copyValueOf方法2:s1="+s1); //toCharArray() //将此字符串转换为一个新的字符数组。 char[] data1 = new char[3]; data1=s1.toCharArray( ); System.out.print("使用toCharArray方法,对s1进行转换,得到的数组元素为:"); for(int i=0;i<data1.length;i++){ System.out.print(data1[i]); } System.out.println(); //getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) //将字符从此字符串复制到目标字符数组。 //srcBegin - 字符串中要复制的第一个字符的索引;srcEnd - 字符串中要复制的最后一个字符之后的索引; //dst - 目标数组;dstBegin - 目标数组中的起始偏移量。 char[] data2 = new char[3]; s1.getChars(1,2,data2,0); System.out.print("使用getChars方法,将s1里面的第2个元素放入到数组里面:"); for(int i=0;i<data2.length;i++){ System.out.print(data2[i]); } System.out.println(); //String substring(int beginIndex) //beginIndex - 起始索引(包括)。 //返回一个新的字符串,它是此字符串的一个子字符串。 //该子字符串从指定索引处的字符开始,直到此字符串末尾。 String s2=new String( ); s2 = s1.substring(0); System.out.println("使用substring方法1:"+s2); //public String substring(int beginIndex, int endIndex) //返回一个新字符串,它是此字符串的一个子字符串。 //该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。 String s3=new String( ); s3 = s1.substring(0, 2); System.out.println("使用substring方法2:"+s3); } /** * 演示在String中查找字符和子串 */ private void find(){ String s1 = "Javav"; //charAt(int index) 返回指定索引处的 char 值。 char c = s1.charAt(2); System.out.println(c); //indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。 //indexOf(int ch, int fromIndex) 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索 //indexOf(String str) 返回指定子字符串在此字符串中第一次出现处的索引。 System.out.println(s1.indexOf('a')); System.out.println(s1.indexOf('a',2)); System.out.println(s1.indexOf("vav")); //lastIndexOf(String str) //返回指定子字符串在此字符串中最右边出现处的索引。 //lastIndexOf(String str, int fromIndex) //返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。 String s2 = "javavaavhva"; System.out.println(s2.lastIndexOf("va")); System.out.println(s2.lastIndexOf("va",8)); } /** * 演示在String中修改字符串 */ private void modify(){ //replace(char oldChar, char newChar) //返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的 String s1 = "Javav"; System.out.println(s1.replace('a', 'b')); //toUpperCase() 使用默认语言环境的规则将此 String 中的所有字符都转换为大写。 //toLowerCase() 使用默认语言环境的规则将此 String 中的所有字符都转换为小写。 String s2 = "JAVA"; System.out.println(s1.toUpperCase()); System.out.println(s2.toLowerCase()); //trim() 返回字符串的副本,忽略前导空白和尾部空白。 String s3 = " dfs sdf "; System.out.println(s3.trim()); } } 注:此文件为团队学习中的总结文件,所以偏重于基础! 老鸟,请飘过!当然,欢迎砸砖!