public final class String implements java.io.Serializable, Comparable<String>, CharSequence {
/** The value is used for character storage. */
private final char value[];
......
对于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}))$";
表示了电话的正则表达式