如何使用正则表达式判断字符串中是否有中文,有的话输出。

RuibeChen RuibeChen 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
功能:分类并输出字符串中的中文,大小写字母,空格以及符号。
问题:如何使用正则表达式判断并输出字符串中的中文?

PS:我知道下面这段代码有点丑,能否给我一段实现同样功能的代码参考一下。

package com.cjj.shiyiyueershisiri;

import java.util.Scanner;

/**
* 字符串分类
* @author prime_cjj
* function:输入一段字符串,判断是否有中文,有的话并输出,共有多少个大小写字母、数字空格号跟其他符号,并分别列出来
*/
public class StringClassified {

public static void main(String[] args) {
//存放字符串
String totalStr = null;
char[] totalStr1 = new char[400];
//存放小写字母
char[] abcStr = new char[100];
int abcCount = 0;
//存放大写字母
char[] ABCStr = new char[100];
int ABCCount = 0;
//存放数字
char[] num = new char[100];
int numCount = 0;
//存放符号
char[] seperateStr = new char[100];
int charCount = 0;
//空格符计数器
int konggeCount = 0;

System.out.println("请随意输入一段字符串~");
//读取键盘输入并存放到totalStr字符串中
totalStr = (new Scanner(System.in)).nextLine();
//将totalStr字符串转换为字符数组
totalStr1 = totalStr.toCharArray();

if(totalStr1.length != 0){
//判断是否存在中文
if(totalStr.matches(".*[\\u4e00-\\u9faf].*")){ //
System.out.println("存在中文");
}else{
System.out.println("不存在中文");
//判断并分组,并计数
for(int i = 0;i < totalStr1.length;i ++){
if(((totalStr1[i]+0) >= ('a'+0)) && ((totalStr1[i]+0) <= ('z'+0))){
abcStr[abcCount] = totalStr1[i];
abcCount++;
}else if(((totalStr1[i]+0) >= 65) && ((totalStr1[i]+0) <= 90)){
ABCStr[ABCCount] = totalStr1[i];
ABCCount++;
}else if(((totalStr1[i]+0) >= 48) && ((totalStr1[i]+0) <= 57)){
num[numCount] = totalStr1[i];
numCount++;
}else if(totalStr1[i] == ' '){
konggeCount++;
}else{ //如何识别所有符号? [\uFE30-\uFFA0]全角字符
seperateStr[charCount] = totalStr1[i];
charCount++;
}
}
}

//输出结果:
System.out.print("您输入的原始字符串为:"+totalStr+"\n");
System.out.println("其中分类如下:");

System.out.print("小写字母共有 "+abcCount+" 个,分别为:");
for(int i = 0;i < abcStr.length;i++){
System.out.print(abcStr[i]+" ");
}
System.out.println();

System.out.print("大写字母共有 "+ABCCount+" 个,分别为:");
for(int i = 0;i < ABCStr.length;i++){
System.out.print(ABCStr[i]+" ");
}
System.out.println();

System.out.print("数字共有 "+numCount+" 个,分别为:");
for(int i = 0;i < num.length;i++){
System.out.print(num[i]+" ");
}
System.out.println();

System.out.print("符号共有 "+charCount+" 个,分别为:");
for(int i = 0;i < seperateStr.length;i++){
System.out.print(seperateStr[i]+" ");
}
System.out.println();

System.out.print("空格号“ ”共有 "+konggeCount+" 个。");


}else
System.out.println("您没有输入任何字符!");
}

}


...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
RuibeChen
Java SE 62,620 成员 307,251 内容