Java提取字符串中的汉字、字母、数字

1.提取汉字

https://img2020.cnblogs.com/blog/1347563/202008/1347563-20200813151539164-1914551992.png

public static void main(String[] args) {
String str = " 我是123一段测abd试 空a格 的字符 串 “;
System.out.println(“过滤出汉字:” + str.replaceAll(”\s*“,”“).replaceAll(”[^(\u4e00-\u9fa5)]“,”"));
}

2.提取字母

public static void main(String[] args) {
String str = " 我是123一段测abd试 空a格 的字符 串 “;
System.out.println(“过滤出字母:” + str.replaceAll(”\s*“,”“).replaceAll(”[^(A-Za-z)]“,”"));
}

3.提取数字
在这里插入图片描述

public static void main(String[] args) {
String str = " 我是123一段测abd试 空a格 的字符 串 “;
System.out.println(“过滤出数字:” + str.replaceAll(”\s*“,”“).replaceAll(”[^(0-9)]“,”"));
}

4.提取数字+字母

在这里插入图片描述

public static void main(String[] args) {
String str = " 我是123一段测abd试 空a格 的字符 串 “;
System.out.println(“过滤出数字+字母:” + str.replaceAll(”\s*“,”“).replaceAll(”[^(a-zA-Z0-9)]“,”"));
}

5.过滤字符串空格

在这里插入图片描述

public static void main(String[] args) {
String str1 = " 我是一段测试 空格 的字符 串 “;
String str2 = " 我是一段测试 空格 的字符 串 “;
String str3 = " 我是一段测试 \r空格 的字符 串 “;
String str4 = " 我是一段测试 \r空格 的字符 串 “;
String str5 = " 我是一段测试 \t空格 \r的字\n符 串 “;
//去掉首尾空格
System.out.println(“去掉首尾空格:” + str1.trim());
//去掉所有空格
System.out.println(“去掉所有空格:” + str2.replace(” “,””));
System.out.println(“去掉所有空格:” + str3.replaceAll(” “,””));
System.out.println(“去掉所有空格:” + str4.replaceAll(” +“,”“));
//去掉特殊的空格、制表符、换页符
System.out.println(“去掉特殊的空格、制表符、换页符:” + str5.replaceAll(”\s*“,”"));
}
原文 https://www.cnblogs.com/i-tao/p/13496586.html

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可以使用正则表达式来实现。 代码示例: ``` String str = "Hello, 世界! 123"; String chinese = str.replaceAll("[^\u4e00-\u9fa5]", ""); // 提取汉字 String special = str.replaceAll("[a-zA-Z0-9\u4e00-\u9fa5\\s]", ""); // 提取特殊字符,忽略数字 ``` 上面的代码,chinese变量存储的是提取出来的汉字,special变量存储的是提取出来的特殊字符。 另外,"[^\u4e00-\u9fa5]" 正则表达式表示的是所有不在这个范围内的字符, "[a-zA-Z0-9\u4e00-\u9fa5\\s]" 正则表达式表示的是所有在这个范围内的字符 ### 回答2: 要提取字符串汉字和特殊字符,而忽略数字,可以使用Java的正则表达式。 首先,我们可以使用正则表达式"[\u4e00-\u9fa5\\p{P}]",其"\u4e00-\u9fa5"代表汉字的Unicode编码范围,"\\p{P}"代表所有的标点符号和特殊字符。这个正则表达式可以用来匹配汉字和特殊字符。 我们可以通过以下步骤来实现提取汉字和特殊字符: 1. 创建一个Pattern对象,使用上述正则表达式作为参数。 2. 创建一个Matcher对象,使用要提取字符串作为参数,并调用matcher()方法。 3. 使用find()方法来查找下一个匹配项。 4. 如果找到了匹配项,可以通过调用group()方法来获取匹配到的字符串。 5. 判断字符串是否为数字,如果不是数字,则将其保存到一个结果字符串。 6. 重复步骤3到5,直到找不到匹配项为止。 以下是一个示例代码: ```java import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String str = "abc123汉字,!@#"; String result = ""; Pattern pattern = Pattern.compile("[\u4e00-\u9fa5\\p{P}]"); Matcher matcher = pattern.matcher(str); while (matcher.find()) { String match = matcher.group(); if (!match.matches("\\d+")) { result += match; } } System.out.println(result); } } ``` 在上述示例,输入的字符串是"abc123汉字,!@#",输出结果是"汉字,!@#",其数字"123"被忽略掉了。 ### 回答3: 在Java提取字符串汉字和特殊字符并忽略数字,可以使用正则表达式进行匹配。以下是一种实现方法: 首先,使用正则表达式`[^\u4E00-\u9FA5a-zA-Z0-9]`匹配字符串的非汉字、非字母、非数字的特殊字符。其,`\u4E00-\u9FA5`表示汉字的Unicode范围。通过使用`[^...]`来匹配除括号内字符之外的任意字符。 接着,使用`replaceAll()`方法将匹配到的特殊字符替换为空格,从而实现忽略这些特殊字符。 最后,使用正则表达式`[^\\p{P}\u4E00-\u9FA5]+`匹配除了汉字和标点符号之外的任意字符,再次使用`replaceAll()`将这些字符替换为空格。 下面是具体的实现代码: ```java public class Main { public static void main(String[] args) { String str = "abc你好123!@#$%哈哈123"; String regex = "[^\\u4E00-\\u9FA5a-zA-Z0-9]"; String result = str.replaceAll(regex, ""); regex = "[^\\p{P}\\u4E00-\\u9FA5]+"; result = result.replaceAll(regex, ""); System.out.println(result); } } ``` 运行上述代码,输出结果为`abc你好哈哈`。即成功提取字符串汉字和特殊字符,忽略了数字

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值