问题
使用replaceAll实现字符串替换,具体要求为将字符串"abc123bcd45ef6g7890"中的数字替换为汉字"数字",如果是连续的数字,那么替换为一个汉字"数字"。
方案
在Java API中的String提供了replaceAll方法,实现将字符串中匹配正则表达式的字符串替换成其它字符串,replaceAll方法的声明如下所示:
String replaceAll(String regex,String replacement)
以上方法实现将字符串中匹配正则表达式regex的字符串替换成replacement。
步骤
实现此案例需要按照如下步骤进行。
步骤一:添加测试方法
在TestRegEx中添加测试方法testReplaceAll,代码如下所示:
package day02;
import org.junit.Test;
import java.util.Arrays;
public class TestRegEx{
/**
*使用replaceAll方法实现字符串替换
*
*/
@Test
public void testReplaceAll(){
}
}
步骤二:使用replaceAll方法
将字符串"abc123bcd45ef6g7890"中的数字替换为汉字"数字",如果是连续的数字,那么替换为一个汉字"数字",在正则表达式中,使用"[\\d+]"来表示可以出现一个或多个数字,代码如下所示:
package day02;
import org.junit.Test;
import java.util.Arrays;
public class TestRegEx{
/**
*使用replaceAll方法实现字符串替换
*
*/
@Test
public void testReplaceAll(){
//将str中的所有数字替换为"数字"二字
String str="abc123bcd45ef6g7890";
str=str.replaceAll("\\d+","数字");
System.out.println(str);
}
}
步骤三:运行
运行方法testReplaceAll,控制台输出结果如下:
abc数字bcd数字ef数字g数字
从输出结果可以看出已经将字符串"abc123bcd45ef6g7890"中的数字替换为汉字"数字"。