13、字符串

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)



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值