String类应用
去重应用(结巴程序)
我...我要...学学学学...编程 java!
通过正则表达式去重,修改成:我要学编程 java
思路
去掉省略号
去掉重复的字
java
public class test {
public static void main(String[] args) {
String content = "我...我要...学学学学...编程 java!";
Pattern pattern = Pattern.compile("\\.");
Matcher matcher = pattern.matcher(content);
// 去除省略号.
String newContent1 = matcher.replaceAll("");
// 利用反向引用去除重复的汉字
pattern = Pattern.compile("(.)\\1+");
matcher = pattern.matcher(newContent1);
// 外部引用
String newContent2 = matcher.replaceAll("$1");
// 输出结果
System.out.println(newContent2);
}
}$1 表示外部引用匹配的第一组(括号表示分组的意思)字串,用一个字( . )去替换匹配的含有重复字( . )\\1+的字串
一次替换多个字符
把如下文字片段中的 JDK1.3、JDK1.4 统一替换成 JDK
2000 年 5 月,JDK1.3、JDK1.4 和 J2SE1.3 相继发布,
几周后其获得了 Apple 公司 Mac OS X 的工业标准的支持。
2001 年 9 月 24 日,J2EE1.3 发布。2002 年 2 月 26 日,
J2SE1.4 发布。自此 Java 的计算能力有了大幅提升示例代码
java
public class test {
public static void main(String[] args) {
String content = "\n" +
"2000 年 5 月,JDK1.3、JDK1.4 和 J2SE1.3 相继发布," +
"几周后其获得了 Apple 公司 Mac OS X 的工业标准的支持" +
"。2001 年 9 月 24 日,J2EE1.3 发布。" +
"2002 年 2 月 26 日,J2SE1.4 发布。自此 Java 的计算能力有了大幅提升!";
String newContent = content.replaceAll("JDK1\\.3|JDK1\\.4","JDK");
System.out.println(newContent);
}
}分割字符串
content = "hello#abc-jack12smith~北京"
分割后的字符串:hello, abc, jack, smith, 北京
java
public class test {
public static void main(String[] args) {
String content = "hello#abc-jack12smith~北京";
String[] newContent = content.split("#|-|~|\\d+");
System.out.println(Arrays.toString(newContent));
}
}⭐ 检验文本是否是汉字
汉字的编码范围:0391-ffe5
java
public class test {
public static void main(String[] args) {
String content = "后端工程师";
Pattern pattern = Pattern.compile("^[\u0391-\uffe5]+$");
Matcher matcher = pattern.matcher(content);
if (matcher.find()){
System.out.println("全部都是汉字");
}else {
System.out.println("有不是汉字的成分");
}
}
}matches( )方法
验证手机号是否以 138 或者 139 开头
java
public class practise {
public static void main(String[] args) {
String content = "13888889999";
if (content.matches("1(38|39)\\d{8}")){
System.out.println("验证成功");
}else {
System.out.println("验证失败");
}
}
}