1、String类型是不可变类型,每次String对象的修改操作会重新创建String对象.
private final char value[];
public String() {
this.value = new char[0];
}
String.format():格式化字符串
String.split():将字符串从正则表达式匹配的地方分隔成数组。
String. replace(char oldChar, char newChar):
String.replaceFirst(String regex, String replacement):
String.replaceAll(String regex, String replacement):
2、操作符“+”:连接字符串。Java中重载了加号操作符,内部示例如下。
使用命令javap可以反编译代码。
如果程序在多次循环中为String对象使用加号或+=操作符,建议在循环体外定义StringBuilder对象,使用其append方法。
String aa="aa"+"bb"+"cc";
//内部实现
StringBuilder sbuilder=new StringBuilder();
sbuilder.append("aa");
sbuilder.append("bb");
sbuilder.append("cc");
return sbuilder.toString();
3、无意识的递归:
例如:
public class exercise01 {
public String toString(){
return "exercise01"+this.toString();
}
}
//分析:
在toString方法内部使用了加号操作符,加号操作符检测到右边的this不是String类型,会调用其toString方法将其转换为String,造成递归调用,程序出错.
解决办法:应使用Object.toString方法。
4、格式化输出:
%格式化修饰符:%d %f %f %b
java.util.Formatter类处理格式化
String.format()内部生成了Formatter对象
public static String format(String format, Object... args) {
return new Formatter().format(format, args).toString();
}
Boolean:boolean基本类型或者Boolean转换为true/false,其他类型的参数只要不为null,结果为true,0也为true.
d | 整数(十进制) |
b | Boolean |
f | 浮点数 |
s | String |
c | Unicode字符 |
e | 浮点数(科学计数) |
x | 整数(十六进制) |
h | 散列码 |
% | 字符% |
5、正则表达式:
\\:表示后边的是正则表达式。
\\\\:表示普通反斜线。
|:或
-:负号
\\+:加号 正号
字符:
B | 指定字符B |
\xhh | 十六进制值为oxhh的字符 |
\uhhhh | 十六进制表示为oxhhhh的Unicode字符 |
\t | 制表符Tab |
\n | 换行符 |
\r | 回车 |
\f | 换页 |
\e | 转义(Escape) |
字符类:
. | 任意字符 |
[abc] | 包含a、b、c、的任意字符(a|b|c) |
[^abc] | 包含a、b、c、之外的任意字符(否定) |
[a-zA-Z] | 从a到z或从A到Z的任意字符(范围) |
[abc[hij]] | 包含a、b、c、h、i、j的任意字符(a|b|c|h|i|j 合并) |
[a-z&&[hij]] | 任意h、i、j(交集) |
\s | 空白符(空格、tab、换行、换页、回车) |
\S | 非空白符[^\s] |
\d | 数字0-9 |
\D | 非数字[^0-9] |
\w | 词字符[a-zA-Z0-9] |
\W | 非词字符[^\w ] |
逻辑操作符:
XY | Y在X的后面 |
X|Y | X或Y |
(X) | 捕获组。可以在表达式中使用\i引用第i个捕获组 |
边界匹配符:
^ | 起始 |
$ | 结束 |
\b | 词的边界 |
\B | 非词的边界 |
\G | 前一个匹配的结束 |
量词:
贪婪型 | 勉强型 | 占有型 | 如何匹配 |
X? | X?? | X?+ | 一个或另个X(0|1) |
X* | X*? | X*+ | 零个或多个X(>=0) |
X+ | X+? | X++ | 一个或多个X(>=1) |
X{n} | X{n}? | X{n}+ | n个X(=n) |
X{n,} | X{n,}? | X{n,}+ | 至少n个X(>=n) |
X{n,m} | X{n,m}? | X{n,m}+ |
X至少n个且不超过m个
(X>=n && X<=m)
|