您的位置:首页 > 编程语言 > Java开发

Java编程思想-13字符串

2017-05-09 01:36 239 查看

一、字符串

1、String:不可变字符序列

String对象一经初始化,就不能被改变

String变更的处理机制:生成新的String对象-->赋值-->返回新对象的引用

编译器会适当使用StringBuilder优化性能

2、StringBuilder:可变字符序列

简单的字符串操作,用String

频繁的字符串操作,用StringBuilder

3、方法

字符串方法会频繁使用,详情见API文档,java.lang.String、java.lang.StringBuilder

二、格式化输出

带格式的输出,不是经常用到,详情见API文档,java.util.Formatter

三、正则表达式

1、定义

正则表达式,Regular Expression,用于操作字符串、符合一定规则的表达式

2、 常用规则

[a-z]	a到z中的任意字母
[abc]	a、b、c中任意一个
[^abc]	除了a、b、c外的任意字符

^	行的开头
$	行的结尾
.	任何字符
&&	与

\d	数字:[0-9]			\D	非数字:[^\d]
\w	单词字符:[a-zA-Z0-9_]		\W	非单词字符:[^\w]
\s	空白字符:[\t\n\f\r\x0B]	\S	非空白字符:[^\s]
\b	单词边界			\B	非单词边界

X?	X,零次或一次
X*	X,零次或多次
X+	X,一次或多次

X{n}	X,恰好n次
X{n,}	X,至少n次
X{n,m}	X,n到m次

\\	反斜线字符
\t	制表符
\n	新行(换行)符
\r	回车符
\f	换页符
\e	转义符

详情见API文档,java.util.regex.Pattern

3、捕获组

捕获组:是用括号划分的正则表达式,可以根据组的编号引用捕获组
\n	符合规则的第n个捕获组
(X)	X,作为捕获组

//示例1:A(B(C))D,组0是ABCD、组1是BC、组2是C

//示例2:叠词替换成单个
String str="aabbcccc".replaceAll("(.)\\1+","$1");

4、匹配

boolean b;
String s="abc",regex="[abc]+";

//方式一
b=s.matches(regex);

//方式二
//优点:可调用java.util.regex.Matcher类的方法
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(s);


四、扫描输入

java.util.Scanner
delimiter():	返回此 Scanner当前用于匹配分隔符的 Pattern。
hasNext():	是否存在下一个
hasNextLine():	是否存在下一行
next():	返回下一个
nextLine():	返回下一行

//扫描控制台输入
Scanner s = new Scanner(System.in);
System.out.println("请输入字符串:");
while (true) {
String line = s.nextLine();
if (line.equals("exit")){
break;
}
System.out.println(">>>" + line);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: