对于String类来说是不可继承的,对于储存字符串的value[]数组来说是赋值后就不可改变的
由于字符串的广泛应用,java采取了优化的措施,使得其变成了不可变的对象,一旦创建,内容不可改变,一旦改变,创建新的
对象,所以在频繁的改变字符串的同时会频繁的创建对象,java也提供了一个可改变的字符串对象,StringBulider/StringBuffer
package caokangnsd; /** * String StringBuffere StringBuilder * @author Administrator * */ public class StringAndStringBuilder { public static void main(String[] args) { //主要介绍String和StringBuilder //显示用String,操作用StringBuilder /* String是final的String内的数组也是final的 */ System.out.println(integer('0')); System.out.println(integer('a')); System.out.println(integer('A')); System.out.println((char)50); String str="我真的想不出什么东西了 daxiaoxie"; System.out.println(str.indexOf("我")); System.out.println(str.charAt(1)); System.out.println(str.startsWith("?")); System.out.println(str.contains(" ")); System.out.println(str.toUpperCase()); System.out.println(str.length()); System.out.println(str.replace("我", "你")); System.out.println(str.matches(".+")); System.out.println(str.replaceAll(" ", "a")); System.out.println(str.split(" ")); System.out.println(str); str.valueOf(new char[] {'a','b'}); System.out.println("over"); StringBuilder sb=new StringBuilder(str); sb.append("haha"); System.out.println(sb.insert(0, ":")); System.out.println(sb.replace(0, 2, "我")); System.out.println(sb.substring(0,1)); System.out.println(sb.reverse()); System.out.println(sb.delete(0, 0)); } public static int integer(char obj) { return Integer.valueOf(obj); } }正则表达式:
描述字符串的规则
. 任意一个字符
\ 已被正则的转化为原意
\d 任意一个数字
\D 任意一个非数字字符
\w 任意一个单词字符(只能是数字,字母,下划线)
\W 任意一个非单词字符
\s 任意一个空白字符
\S 任意一个非空白字符
[] 描述单一字符[a-z A-Z 0-9 _]
+ 连续出现至少一次以上
* 表示内容出现0到若干次
? 表示出现0到1次
{n} 必须出现n次
{n,m} 出现n到m次
{n,} 至少出现n次
String pattern = "(\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})- (\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$";表示了电话的正则表达式
