1 import org.junit.Test; 2 3 public class StringTest { 4 //1.length()方法 5 @Test 6 public void t1(){ 7 int a = "sun".length(); 8 System.out.println(a); 9 } 10 //2.charAt() 截取一个字符 11 @Test 12 public void t2(){ 13 String str1 = "sunxuelong"; 14 char ch1 = str1.charAt(2); 15 System.out.println(ch1); 16 } 17 //3.equals()和equalsIgnoreCase() 比较两个字符串 18 @Test 19 public void t3(){ 20 String str1 = "sunxuelong"; 21 String str2 = "SunXueLong"; 22 boolean boo1 = str1.equals(str2); 23 boolean boo2 = str1.equalsIgnoreCase(str2); 24 System.out.println(boo1); 25 System.out.println(boo2); 26 } 27 //4.startsWith()和endsWith() 28 @Test 29 public void t4(){ 30 String str1 = "sunxuelong"; 31 String str2 = "SunXueLong"; 32 System.out.println(str1.endsWith("Xue")); 33 System.out.println(str2.endsWith("long")); 34 } 35 //5.equals()和== 36 @Test 37 public void t5(){ 38 String str1 = "sunxuelong"; 39 String str2 = "SunXueLong"; 40 System.out.println(str1 == str2); 41 } 42 //6.compareTo()和compareToIgnoreCase() 比较字符串 43 //它从第一位开始比较,如果遇到不同的字符,则马上返回这两个字符的ascii值差值..返回值是int类型 44 @Test 45 public void t6(){ 46 String str1 = "a"; 47 String str2 = "aa"; 48 System.out.println(str1.compareTo(str2)); 49 } 50 //7.indexOf() 查找字符或者子串第一次出现的地方。 51 //lastIndexOf() 查找字符或者子串是后一次出现的地方。 52 //indexOf(ch)ch表示ASCII值 53 //indexOf(ch,int)表示从第int为你开始 54 //indexOf(str) 55 //indexOf(str,int) 56 //说明: 57 //如果没有找到子字符串,则返回 -1。 58 //如果 startindex 是负数,则 startindex 被当作零。 59 //如果它比最大的字符位置索引还大,则它被当作最大的可能索引。从左向右执行查找。否则,该方法与 lastIndexOf 相同。 60 @Test 61 public void t7(){ 62 String str1 = "sbnxuelong"; 63 System.out.println(str1.indexOf(98,100)); 64 } 65 //8.substring() 截取字符串 66 @Test 67 public void t8(){ 68 String str1 = "sbnxuelong"; 69 System.out.println(str1.substring(3)); 70 System.out.println(str1.substring(3,4)); 71 } 72 //9.replace()和replaceAll() 73 //注意:replace()会替换所有相符的字符串 74 // replaceAll(regex, replacement)替换 75 // replaceFirst(regex, replacement)替换 76 @Test 77 public void t9(){ 78 String str1 = "sbnxuesongxue"; 79 System.out.println(str1.replace("s", "a")); 80 System.out.println(str1.replaceAll("\\d","xxx")); 81 System.out.println(str1.replaceAll("s","xxx")); 82 System.out.println(str1.replaceFirst("s", "000")); 83 } 84 //10.trim()去掉起始和结尾的空格 85 //如何去掉中间的空格呢?利用replaceAll 86 @Test 87 public void t10(){ 88 String str1 = " sbnxue songxue "; 89 System.out.println(str1.trim()); 90 System.out.println(str1.replace(" ","")); 91 } 92 //11.String类型与其他基本数据类型之间转换 93 //String.valueOf()转换为字符串 94 //Integer.parseInt(str, radix)radix表示str是多少进制的数,最后都转换成10进制 95 @Test 96 public void t11(){ 97 String str = String.valueOf(123); 98 System.out.println(str); 99 Integer.parseInt(str); 100 System.out.println(Integer.parseInt("123", 8)); 101 } 102 //12.toLowerCase() 转换为小写 103 // toUpperCase() 转换为大写 104 @Test 105 public void t12(){ 106 String str1 = "sunxuelong"; 107 String str2 = "SunXueLong"; 108 System.out.println(str1.toLowerCase()); 109 System.out.println(str1.toUpperCase()); 110 System.out.println(str2.toLowerCase()); 111 System.out.println(str2.toUpperCase()); 112 } 113 //13.split方法 如果字符串中在内部存在和间隔字符串相同的内容时将拆除空字符串,尾部的空字符串会被忽略掉 114 // s.split(regex, limit) limit限定拆分以后的字符串数量 115 @Test 116 public void t13(){ 117 String s = "abbbcbtbbb"; 118 String s1[] = s.split("b"); 119 for(int i=0;i<s1.length;i++){ 120 System.out.println(s1[i]); 121 } 122 123 } 124 //14.String 不可变 线程安全 任何对String的改变都会引发新的String对象的生成 125 // StringBuffer 可变 线程安全 不会产生新的对象 126 // StringBuilder 可变 非线程安全 127 // 如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。 128 129 //StringBuffer sb2 = new StringBuffer(s); String转换为StringBuffer 130 //String s1 = sb1.toString(); StringBuffer转换为String 131 @Test 132 public void t14(){ 133 String str1 = "sunxuelong"; 134 String str4 = "sunxuelong"; 135 String str2 = null; 136 StringBuffer strb1 = new StringBuffer(str1); 137 StringBuffer strb2 = new StringBuffer(str4); 138 System.out.println(strb1.equals(strb2)); 139 System.out.println(str2); 140 141 } 142 //15.StringBuffer的常用方法 143 //append方法 追加String类型和StringBuffer是一样的 144 @Test 145 public void t15(){ 146 StringBuffer sb1 = new StringBuffer("abc"); 147 sb1.append(true); 148 149 String tempstr1 = "abcdefghijklmnopqrstuvwxyz"; 150 int times1 = 50000; 151 long lstart1=System.currentTimeMillis(); 152 String str =""; 153 for(int i=0;i<times1;i++) 154 { 155 str+=tempstr1; 156 } 157 long lend1=System.currentTimeMillis(); 158 long time1 = (lend1-lstart1); 159 System.out.println(time1); 160 161 String tempstr2 = "abcdefghijklmnopqrstuvwxyz"; 162 int times2 = 5000000; 163 long lstart2=System.currentTimeMillis(); 164 StringBuffer sb =new StringBuffer(); 165 for(int i=0;i<times2;i++) 166 { 167 sb.append(tempstr2); 168 } 169 long lend2=System.currentTimeMillis(); 170 long time2 = (lend2-lstart2); 171 System.out.println(time2); 172 } 173 //16.deleteCharAt方法 该方法的作用是删除指定位置的字符,然后将剩余的内容形成新的字 174 // delete(int start,int end)方法 175 @Test 176 public void t16(){ 177 StringBuffer sb = new StringBuffer("test"); 178 sb.deleteCharAt(1); 179 System.out.println(sb); 180 StringBuffer sb2 = new StringBuffer("testString"); 181 System.out.println(sb2.delete(2, 5)); 182 } 183 //17.insert方法 insert(int offset, boolean b) 184 //该方法的作用是将StringBuffer对象中的内容反转,然后形成新的字符 185 @Test 186 public void t17(){ 187 StringBuffer sb = new StringBuffer("test"); 188 sb.insert(4,"123"); 189 System.out.println(sb); 190 } 191 192 //18.setCharAt方法 该方法的作用是修改对象中索引值为index位置的字符为新的字符ch 193 @Test 194 public void t18(){ 195 StringBuffer sb = new StringBuffer("abc"); 196 sb.setCharAt(1,‘D‘); 197 System.out.println(sb); 198 } 199 200 //19.setLength方法 可以设置长度 201 @Test 202 public void t19(){ 203 StringBuffer sb1 = new StringBuffer("abcdefg"); 204 System.out.println(sb1.length()); 205 } 206 207 //20.replace方法 208 @Test 209 public void t20(){ 210 StringBuffer sb1 = new StringBuffer("abcdefgabcdefg"); 211 System.out.println(sb1.replace(1, 7, "123")); 212 } 213 214 //21.substring(start)方法 215 // substring(start, end)方法 216 @Test 217 public void t21(){ 218 StringBuffer sb1 = new StringBuffer("abcdefgabcdefg"); 219 System.out.println(sb1.substring(1)); 220 System.out.println(sb1.substring(2, 3)); 221 } 222 223 }
时间: 2024-10-13 14:31:45