JAVA中split和replaceFirst以及replaceAll

一、spilt分割字符串

	String str = "2134|678.654";
	// 此处的参数regex是指规则表达式的意思,要注意在该方法中使用了转义字符,而不是正则表达式
	// 此转义字符非彼转义字符,这里的转义字符是方法内部对某几个字符进行了特殊识别
	// 这里的转义字符包含|和.,仅限split|replaceFirst|replaceAll方法中
	// 平时说的java转义字符,是指\t\n\\\s等
	// 表示这是一个整体符号,制表换行空格的意思,在整个java语言里面通用
	String[] strArr1 = str.split("1");
	System.out.println(Arrays.toString(strArr1));
	// |表示将字符串以单个字符分割
	String[] strArr2 = str.split("|");
	System.out.println(Arrays.toString(strArr2));
	// .表示整体分割掉,最后返回空数组
	String[] strArr3 = str.split(".");
	System.out.println(Arrays.toString(strArr3));
	// \\|表示以|分割字符串
	String[] strArr4 = str.split("\\|");
	System.out.println(Arrays.toString(strArr4));
	// \\.表示以.分割字符串
	String[] strArr5 = str.split("\\.");
	System.out.println(Arrays.toString(strArr5));

二、replace方法的的使用

1.replace的使用
	String str = "1234567890";
	// replace的参数是字符或字符串,而不是规则或正则表达式
	// replace是替换字符串中所有的字符(串)为另一个字符(串)
	// replace之后,要赋值给原先的字符串,因为原先的字符串没变
	str = str.replace('5', '|');
	System.out.println(str);
	str = str.replace("34", "..");
	System.out.println(str);
2.replaceFirst的使用
	String str = "123|456|789.0";
	// replaceFirst也是用到了规则表达式
	// .表示任意字符
	// replaceFirst替换第一个匹配的字符
	str = str.replaceFirst(".", "*");
	// 实现了替换任意的第一个字符
	System.out.println(str);
	// |实际效果是在字符串前面加了字符串
	str = str.replaceFirst("|", "12345");
	System.out.println(str);
	// 使用\\|真正实现了替换第一个|
	str = str.replaceFirst("\\|", ".");
	System.out.println(str);
	// 真正\\.实现了替换第一个.
	str = str.replaceFirst("\\.", "-");
	System.out.println(str);
3.replaceAll的使用
	String str = "123|465.789|987.654|321";
	// 实现效果.表示替换所有符号为*
	System.out.println(str.replaceAll(".", "*"));
	// 实现效果,仅替换所有.为*
	System.out.println(str.replaceAll("\\.", "*"));
	// 实现效果,每两个符号间插入了|
	System.out.println(str.replaceAll("|", "*"));
	// 实现效果,仅替换所有的|为* 
	System.out.println(str.replaceAll("\\|", "*"));

三、总结

replace不存在规则表达式的问题。
split和replaceFirst以及replaceAll存在.和|转义,只有前面加上\\,即\\.和\\|,才能表达原先的分割和替换的含义。
.在split中是把整个字符串分割掉,最后的结果是返回空数组。
|在split中是把整个字符串的每个字符都分割出来。
.在replaceFirst中是替换任意的首字符。
|在replaceFirst中是在字符串前面加上了替换后的字符。
.在replaceAll中是替换任意的所有字符。
| 在replaceAll中是在每个字符前后加上了替换后的字符。
split和replaceFirst以及replaceAll中将字符串中每个字符前后以|分割开来进行操作,以降低算法的时间复杂度,这样在以|分割或替换时,就会发生上述场景。
换句话说,split等函数在操作1234567890字符串时,实际操作的是|0|1|2|3|4|5|6|7|8|9|0|字符串。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值