<1.创建字符串
1.chara[]={'s','t','u','d','e','n','t'};Stringstr=newString(a);Stringstr=newString(a,2,4);
2.Stringstr=newString("student");//新建一个对象"student",同时str本身也是一个字符串对象(因为被new过)
3.Stringstr="student";//先查找是否能够引用,如果不能引用再新建对象(此处str不是对象,只算是引用)
4.StringBufferbuffer=newStringBuffer("student");
5.StringBuilderbuilder=newStringBuilder("student");
<2.字符串操作
获取长度str.length();
字符串查找str.indexOf("s");str.lastIndexOf("t");
获取字符str.charAt(3);
取子串str.substring(3);str.substring(0,3);
去空格str.trim();
字符串替换str.replace("s","m");
判断开始于结尾str.startsWith("s");str.endsWith("ent");
字符串相等==比较字符串地址;str.equals(otherstr);str.equalsIgnoreCase(otherstr);//判断字符串内容,后者判断时忽略大小写
比较字符串str.compareTo(otherstr);//根据unicode编码比较,str在otherstr前则返回负号,把compareTo看成减号。
大小写转换str.toLowerCase();str.toUpperCase();
字符串分割String[]newstr=str.split(",");String[]newstr2=str.split(",",2);
格式化字符串Datedate=newDate();Strings=String.format("%te",date);//具体格式转换符百度或翻书
字符串生成器builder.append("aaa");builder.insert(4,"
word");builder.delete(2,3);
<3.正则表达式(查找或判断字符串中是否有满足格式的子串)
11个特殊字符:[]\^$.|?*+()
字符集[]:告诉正则表达式引擎仅仅匹配多个字符中的一个,“\”代表转义,“^”代表取反,“-”代表范围定义,“|”表示或。ex:[^0-9]即表示一个非数字。
?*+来表示字符集的重复。?表示0或1次;*表示任意次;+表示1次或多次。(可以形象记忆)
限制性重复用{minnum,maxnum}
.表示任意字符,\.表示普通的点号。
()用于组合。ex:([A-Z][A-Z0-9]*)表示第1个字母A-Z,后面的可以有任意数字或者字母。
字符集的简写\d\D\s\S\w\W(\w代表可以用作标识符的字符),大写表示取反
ex1:Stringregex="\\w+@\\w+\\.\\w+";在字符串中\\转义获得\,即\\w表示\w
if(str.matches(regex)){}
ex2:Stringa=s.replace("[^0-9]","");//把非数字字符替换为空
注:
(1.String,StringBuffer,StringBuilder区别
String字符串常量,用+拼接字符串的时候,等同于生成了一个新的String对象,然后将指针指向新的String对象。ex:str+="aaa";
StringBuffer字符串变量(线程安全),可将字符串缓冲区安全地用于多个线程。主要方法是str.append("a");str.insert(4,"a");
StringBuilder字符串常量(非线程安全),被
设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候。其方法和StringBuffer基本相同。