注:此文件为团队学习中的总结文件,所以偏重于基础!
老鸟,请飘过!当然,欢迎砸砖!
- 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());
- }
- }