Java编程思想-13字符串

来源:互联网 发布:移动硬盘监控软件 编辑:程序博客网 时间:2024/05/21 10:54

一、字符串

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); }
0 0