首页 > 代码库 > java操作字符串

java操作字符串

  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         @Test105         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         @Test116         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转换为StringBuffer130         //String s1 = sb1.toString();               StringBuffer转换为String131         @Test132         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         @Test145         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         @Test176         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         @Test186         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位置的字符为新的字符ch193         @Test194         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         @Test202         public void t19(){203             StringBuffer sb1 = new StringBuffer("abcdefg");204             System.out.println(sb1.length());205         }206         207         //20.replace方法                        208         @Test209         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         @Test217         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 }

 

java操作字符串