初始JAVA第十五章String的总结
1 字符串的概述 2 1.什么是字符串:零个或多个字符组成的有限序列 3 2.如何使用字符串:(使用字符串分为两步) 4 1)定义并初始化字符串 5 2)使用字符,对字符串进行一些处理 6 // 穿件一个字符串 7 // 语法 8 String arhs = “abc”; 9 // 创建一个空的字符串 10 String string = new String(); 11 // 创建一个字符串对象Demo 12 String string = new String(“Demo”); 13 System.out.println(string); 14 3.字符串的长度(常用到的地方:密码不能小于n位) 15 语法:字符串.length();返回字符串的长度 16 String name = "tom"; 17 if(name.length() > 2){ 18 System.out.println("T"); 19 }else{ 20 System.out.println("F"); 21 } 22 4.字符串的比较 23 语法:字符串1.equals(字符串2); 24 比较两个字字符串是否相等,返回boolean类型的值true or false 25 String name1 = "tom"; 26 String name2 = "Jie"; 27 if(name1.equals(name2)){ 28 System.out.println("匹配成功!"); 29 }else{ 30 System.out.println("匹配失败!"); 31 } 32 字符串1 == 字符串2 33 // name1 = A name2 = A true 34 // name1 = A name2 = a false 35 String name1 = "A"; 36 String name2 = "A"; 37 if(name1 == name2){ 38 System.out.println("true"); 39 }else{ 40 System.out.println("false"); 41 } 42 43 44 5.字符串忽略大小写的比较 45 字符串1.equalsIgnoreCase(字符串2);忽略掉字符串的大小写,相同返回true否则false 46 String name1 = "ABC"; 47 String name2 = "abc"; 48 if(name1.equalsIgnoreCase(name2)){ 49 System.out.println("true"); 50 }else{ 51 System.out.println("false"); 52 } 53 6.字符串中大小写的转换 54 大写转换位小写toLowerCase()方法 55 // 定义ABC字符串 56 String name1 = "ABC"; 57 // 使用toLowerCase()方法转换位小写 58 System.out.println(name1.toLowerCase()); 59 小写转换位大写toUpperCase()方法 60 // 定义ABC字符串 61 String name1 = "ABC"; 62 // 使用toUpperCase()方法转换位小写 63 System.out.println(name1.toUpperCase()); 64 65 复杂字符串的处理 66 1.字符串的链接 67 使用拼接符“+“ 68 System.out.println(“这是”+”Java”); 69 2.concat()方法:将一个字符串链接带另一个字符串的后面 70 语法:字符串1.concat(字符串2) 71 // 定义字符串ABC 72 String string1 = "ABC"; 73 // 定义字符串DEF 74 String string2 = "DEF"; 75 // 使用concat()方法将字符串进行拼接 76 System.out.println(string1.concat(string2)); 77 78 字符串的提取和查询 79 语法:public int indexOf(int ch): 返回指定字符在字符串中第一次出现的字符,如果此字符串中没有这样的字符,则返回 -1 80 语法:int indexOf(String str): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1 81 // 总字符串 82 String Str = new String("Hello World!java"); 83 // 第一个字符串 84 String SubStr1 = new String("Hello"); 85 // 第二个字符串 86 String SubStr2 = new String("java"); 87 System.out.print("查找字符 o 第一次出现的位置 :"); 88 System.out.println(Str.indexOf('o')); 89 System.out.print("子字符串 SubStr1 第一次出现的位置:"); 90 System.out.println(Str.indexOf(SubStr1)); 91 System.out.print("子字符串 SubStr2 第一次出现的位置 :"); 92 System.out.println(Str.indexOf(SubStr2)); 93 public int lastIndexOf(int ch): 返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1 94 public int lastIndexOf(String str): 返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1 95 String Str = new String("Hello World!Java"); 96 String SubStr1 = new String("Hello"); 97 String SubStr2 = new String("Java"); 98 System.out.print("查找字符 o 最后出现的位置 :"); 99 System.out.println(Str.lastIndexOf('o')); 100 System.out.print("子字符串 SubStr1 最后出现的位置:"); 101 System.out.println(Str.lastIndexOf(SubStr1)); 102 System.out.print("子字符串 SubStr2 最后出现的位置 :"); 103 System.out.println(Str.lastIndexOf(SubStr2)); 104 substring() 方法返回字符串的子字符串 105 语法:public String substring(int beginIndex) 106 或 107 public String substring(int beginIndex, int endIndex) 108 参数 109 beginIndex -- 起始索引(包括)。 110 endIndex -- 结束索引(不包括)。 111 返回值:子字符串 112 String Str = new String("Hello World !!! Hello Java"); 113 System.out.print("返回值 :"); 114 System.out.println(Str.substring(4)); 115 System.out.print("返回值 :"); 116 System.out.println(Str.substring(4, 10)); 117 118 trim() 方法用于删除字符串的头尾空白符。 119 语法 120 publicString trim() 121 参数 122 无 123 返回值 124 删除头尾空白符的字符串 125 String Str = new String(" Hello World!!! "); 126 System.out.print("原始值 :" ); 127 System.out.println( Str ); 128 129 System.out.print("删除头尾空白 :" ); 130 System.out.println( Str.trim() ); 131 132 字符串的拆分 133 语法:字符串1.split(String separator,int limit); 134 Separator:可选,标识拆分字符串是使用一个或多个字符8 135 Limit:可选,该值用来限制返回数组中的元素个数 136 String words="长亭外古道边芳草碧连天晚风扶柳笛声残夕阳山外山"; 137 String[] printword=new String[100];//接收数组 138 139 System.out.println("***原歌词格式***\n"+words); 140 System.out.println("\n***拆分后歌词格式***"); 141 printword=words.split(" ");//按照空格进行拆分 142 for(int i=0;i<printword.length;i++){ 143 System.out.println(printword[i]);//打印输出 144 } 145 146 147 如何使用StringBuffer类 148 1.生命StringBuffer对象并初始化 149 //生命一个空的StringBuffer对象 150 StringBuffer sb = new StringBuffer(); 151 // 生命一个字符串 152 StringBuffer sb = new StringBuffer(“好好学习,天天向上”); 153 154 常用的StringBuffer 类的方法 155 字符串.toString();将StringBuffe类型的字符串转换位String类型的对象并返回 156 String sb1 = sb2.toString(); 157 158 字符串1.append(字符串2); 159 将字符串2链接到字符串1后面 160 161 字符串1.insert(位置,参数)将参数插入到字符串1的制定位置(int类型)后并返回 162 参数可以位String的任何类型 163 164 165 166 167 168 String与StringBuffer的区别 169 简单地说,就是一个变量和常量的关系。 170 StringBuffer对象的内容可以修改; 171 而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象。 172 StringBuffer的内部实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。 173 String:在String类中没有用来改变已有字符串中的某个字符的方法,由于不能改变一个java字符串中的某个单独字符,所以在JDK文档中称String类的对象是不可改变的。然而,不可改变的字符串具有一个很大的优点:编译器可以把字符串设为共享的。 174 StringBuffer:StringBuffer类属于一种辅助类,可预先分配指定长度的内存块建立一个字符串缓冲区。这样使用StringBuffer类的append方法追加字符比 String使用 + 操作符添加字符到一个已经存在的字符串后面有效率得多。因为使用 + 操作符每一次将字符添加到一个字符串中去时,字符串对象都需要寻找一个新的内存空间来容纳更大的字符串,这无凝是一个非常消耗时间的操作。添加多个字符也就意味着要一次又一次的对字符串重新分配内存。使用StringBuffer类就避免了这个问题。 175 StringBuffer是线程安全的,在多线程程序中也可以很方便的进行使用,但是程序的执行效率相对来说就要稍微慢一些。