1,string是不可变的对象,当创建两个长度非常长但是就末尾一个字符不一样的字符串时候,会创建两个很长的空间,比较耗费空间,stringBuilder可以解决这个问题,stringBuilder会在第一个字符串上追加多出来的哪一个字符,而不是开辟一个很长的空间;
2,stringBuffer的作用和stringBuilder是基本一样的,只是stringBuffer是线程安全的,stringBuilder不是线程安全的,stringBuffer要实现线程安全,相应的在效率上就没有stringBuilder高;
3,正则表达式是用一组特殊字符来描述一字符串的格式的规则,用来匹配满足这个格式的字符串;
4,[] 表示一个字符
5,() 表示一组字符
6,[0-9] 或者 [\d] 表示一个数字字符
7,[a-zA-Z] 表示一个英文字符
8,[\w] 或者 [0-9a-zA-Z_] 表示一个单词字符,包括数字字母下划线
9,[\s] 表示一个空白字符,包括空格、制表符等
10,[\D] 表示一个不是数字的字符
11,[\W] 表示一个不是单词字符的字符
12,[\S] 表示一个不是空白字符的字符
13,[^asdqwe] ^在方括号里面,表示一个不是在方括号所包含的字符范围内的字符
14,. 表示任意一个字符
15,X? 量词,表示X出现0次或者1次,或者是要么有X要么没有X
16,X+ 量词,表示X出现1次或者多次,必须有一次
17,X* 量词,表示X出现0次或者多次
18,X{n} 量词,表示X出现n次,n>=0
19,X{n,} 量词,表示X最少出现n次,n>=0
20,X{n,m} 量词,表示X出现n到m次,n>=0,m>n
21,X{0,m} 量词,表示X最多出现m次,m>0
22,^X ^放在外面,表示以X开头,java里面默认有^
23,X$ 表示以X结尾,java里面默认有$
24,正则里面需要用 \. 来实现转义 . java里面要用 \\ 来转义 \ 所以在java里面要用 \\. 来实现java里面的正则里面的 . 的转义
25,str.matches(ragex) 返回str是否匹配正则表达式ragex所描述的格式,true 或者 false
26,正则是用来验证内容的格式的,不应该用来验证内容的有效性