如何使用正则表达式判断字符串中是否有中文,有的话输出。 正则表达式java 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 System.out.print("小写字母共有 "+abcCount+" 个,分别为:"); for(int i = 0;i < abcStr.length;i++){ System.out.print(abcStr[i]+" "); } System.out.println();我知道这些重复的代码最好用函数来是实现。但这个毕竟只是测试类。 import java.util.Scanner;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * 字符串分类 * @author prime_cjj * function:输入一段字符串,判断是否有中文,有的话并输出,共有多少个大小写字母、数字空格号跟其他符号,并分别列出来 */public class StringClassified { public static void main(String[] args) { checkfilename("输入一段字符串,ssss判断是否有中文dd,有的话并输d出,共有多w少个大小5写字母、数字空e6格号跟其他符号,并f分别列s出来"); } public static void checkfilename(String s){ s=new String(s.getBytes());//用GBK编码 String pattern="[\u4e00-\u9fa5]+"; Pattern p=Pattern.compile(pattern); Matcher result=p.matcher(s); while (result.find()) { System.out.println(result.group()); } }} 都学JAVA了 还是面向过程的编程习惯 package com.cjj.upgrades;import java.lang.reflect.Array;import java.util.ArrayList;import java.util.Arrays;import java.util.Scanner;import java.util.regex.Matcher;import java.util.regex.Pattern;public class StringClassfied { static String str; public StringClassfied(){ System.out.println("请随意敲击键盘,我可以帮你分析哦!"); Scanner sc = new Scanner(System.in); //创建一个Scanner对象用来读取键盘输入 str = sc.nextLine(); //将读取到的数据转化为字符串类型 } //分析 public void ClassifyString(String str){ /* * 存在中文 * 判断 * public boolean matches(String regex) * 告知此字符串是否匹配给定的正则表达式。 */ if(str.matches(".*[\\u4e00-\\u9faf].*")){ String pattern="[\u4e00-\u9fa5]"; //正则表达式 Pattern p=Pattern.compile(pattern); //将给定的正则表达式编译到模式中。 Matcher result=p.matcher(str); //创建匹配给定输入与此模式的匹配器。 ArrayList arrays = new ArrayList(); while (result.find()) { //如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。 //将中文存放到arrays中 arrays.add(result.group()); } System.out.print("存在中文,有 "+arrays.size()+" 个字,分别为:"); Object[] zhongwen = arrays.toArray(); print(zhongwen); }else{ System.out.println("不存在中文。"); } System.out.println(); //小写字母 if(str.matches(".*[a-z].*")){ String pattern="[a-z]"; //正则表达式 Pattern p=Pattern.compile(pattern); //将给定的正则表达式编译到模式中。 Matcher result=p.matcher(str); //创建匹配给定输入与此模式的匹配器。 ArrayList arrays = new ArrayList(); while (result.find()) { //如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。 //将对象存放到arrays中 arrays.add(result.group()); } System.out.print("存在小写字母,有 "+arrays.size()+" 个,分别为:"); Object[] SmallLetter = arrays.toArray(); print(SmallLetter); }else{ System.out.println("不存在小写字母。"); } System.out.println(); //大写字母 if(str.matches(".*[A-Z].*")){ String pattern="[A-Z]"; //正则表达式 Pattern p=Pattern.compile(pattern); //将给定的正则表达式编译到模式中。 Matcher result=p.matcher(str); //创建匹配给定输入与此模式的匹配器。 ArrayList arrays = new ArrayList(); while (result.find()) { //如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。 //将对象存放到arrays中 arrays.add(result.group()); } System.out.print("存在大写字母,有 "+arrays.size()+" 个,分别为:"); Object[] SmallLetter = arrays.toArray(); print(SmallLetter); }else{ System.out.println("不存在大写字母。"); } System.out.println(); //数字 if(str.matches(".*[0-9].*")){ String pattern="[0-9]"; //正则表达式 Pattern p=Pattern.compile(pattern); //将给定的正则表达式编译到模式中。 Matcher result=p.matcher(str); //创建匹配给定输入与此模式的匹配器。 ArrayList arrays = new ArrayList(); while (result.find()) { //如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。 //将对象存放到arrays中 arrays.add(result.group()); } System.out.print("存在数字,有 "+arrays.size()+" 个,分别为:"); Object[] SmallLetter = arrays.toArray(); print(SmallLetter); }else{ System.out.println("不存在数字。"); } System.out.println(); //空格号 if(str.matches(".*[ ].*")){ String pattern="[ ]"; //正则表达式 Pattern p=Pattern.compile(pattern); //将给定的正则表达式编译到模式中。 Matcher result=p.matcher(str); //创建匹配给定输入与此模式的匹配器。 ArrayList arrays = new ArrayList(); while (result.find()) { //如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。 //将对象存放到arrays中 arrays.add(result.group()); } System.out.print("存在空格号,有 "+arrays.size()+" 个"); }else{ System.out.println("不存在空格号。"); } System.out.println(); //符号 if(str.matches(".*[^A-Za-z0-9_].*")){ String pattern="[^A-Za-z0-9_]"; //正则表达式 Pattern p=Pattern.compile(pattern); //将给定的正则表达式编译到模式中。 Matcher result=p.matcher(str); //创建匹配给定输入与此模式的匹配器。 ArrayList arrays = new ArrayList(); while (result.find()) { //如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。 //将对象存放到arrays中 arrays.add(result.group()); } System.out.print("存在符号,有 "+arrays.size()+" 个,分别为:"); Object[] SmallLetter = arrays.toArray(); print(SmallLetter); }else{ System.out.println("不存在数字。"); } System.out.println(); } public void print(Object[] obj){ for(int i = 0;i < obj.length;i++){ System.out.print(obj[i]+" "); } } public static void main(String[] args) { // TODO Auto-generated method stub StringClassfied sc1 = new StringClassfied(); sc1.ClassifyString(str); }}感谢你的提示,我查阅了API以及搜索了正则表达式的使用。根据你的提示,我修改了下代码(如上),但是有一个问题,就是符号比如逗号,句号如何用正则表达式来判断? 谢谢你的指正,我已经修改了代码,java本来就是面向对象的思想。 炒股的朋友来帮帮忙,我想抓取收盘价 求教:jsp引用JB时,无法访问数据库? java与串口之间的编程 一个关于日期的问题,急,在线等 java 多线程参数传递的问题 小弟急需各位大哥出手相助! 各位大虾,帮帮我啦 MVC的一种开放源码实现--Struts在应用时中文出现乱码如何解决??? 介绍几本好书?? 我想学JAVA可是不知道用什么开发工具啊 java发送邮件时候,代码中的密码如何不使用明文 java怎么实现把DOC文件转pdf文件下载
for(int i = 0;i < abcStr.length;i++){
System.out.print(abcStr[i]+" ");
}
System.out.println();
我知道这些重复的代码最好用函数来是实现。
但这个毕竟只是测试类。
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;/**
* 字符串分类
* @author prime_cjj
* function:输入一段字符串,判断是否有中文,有的话并输出,共有多少个大小写字母、数字空格号跟其他符号,并分别列出来
*/
public class StringClassified { public static void main(String[] args) {
checkfilename("输入一段字符串,ssss判断是否有中文dd,有的话并输d出,共有多w少个大小5写字母、数字空e6格号跟其他符号,并f分别列s出来");
}
public static void checkfilename(String s){
s=new String(s.getBytes());//用GBK编码
String pattern="[\u4e00-\u9fa5]+";
Pattern p=Pattern.compile(pattern);
Matcher result=p.matcher(s);
while (result.find()) {
System.out.println(result.group());
}
}}
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class StringClassfied {
static String str;
public StringClassfied(){
System.out.println("请随意敲击键盘,我可以帮你分析哦!");
Scanner sc = new Scanner(System.in); //创建一个Scanner对象用来读取键盘输入
str = sc.nextLine(); //将读取到的数据转化为字符串类型
}
//分析
public void ClassifyString(String str){
/*
* 存在中文
* 判断
* public boolean matches(String regex)
* 告知此字符串是否匹配给定的正则表达式。
*/
if(str.matches(".*[\\u4e00-\\u9faf].*")){
String pattern="[\u4e00-\u9fa5]"; //正则表达式
Pattern p=Pattern.compile(pattern); //将给定的正则表达式编译到模式中。
Matcher result=p.matcher(str); //创建匹配给定输入与此模式的匹配器。
ArrayList arrays = new ArrayList();
while (result.find()) { //如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。
//将中文存放到arrays中
arrays.add(result.group());
}
System.out.print("存在中文,有 "+arrays.size()+" 个字,分别为:");
Object[] zhongwen = arrays.toArray();
print(zhongwen);
}else{
System.out.println("不存在中文。");
}
System.out.println();
//小写字母
if(str.matches(".*[a-z].*")){
String pattern="[a-z]"; //正则表达式
Pattern p=Pattern.compile(pattern); //将给定的正则表达式编译到模式中。
Matcher result=p.matcher(str); //创建匹配给定输入与此模式的匹配器。
ArrayList arrays = new ArrayList();
while (result.find()) { //如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。
//将对象存放到arrays中
arrays.add(result.group());
}
System.out.print("存在小写字母,有 "+arrays.size()+" 个,分别为:");
Object[] SmallLetter = arrays.toArray();
print(SmallLetter);
}else{
System.out.println("不存在小写字母。");
}
System.out.println();
//大写字母
if(str.matches(".*[A-Z].*")){
String pattern="[A-Z]"; //正则表达式
Pattern p=Pattern.compile(pattern); //将给定的正则表达式编译到模式中。
Matcher result=p.matcher(str); //创建匹配给定输入与此模式的匹配器。
ArrayList arrays = new ArrayList();
while (result.find()) { //如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。
//将对象存放到arrays中
arrays.add(result.group());
}
System.out.print("存在大写字母,有 "+arrays.size()+" 个,分别为:");
Object[] SmallLetter = arrays.toArray();
print(SmallLetter);
}else{
System.out.println("不存在大写字母。");
}
System.out.println();
//数字
if(str.matches(".*[0-9].*")){
String pattern="[0-9]"; //正则表达式
Pattern p=Pattern.compile(pattern); //将给定的正则表达式编译到模式中。
Matcher result=p.matcher(str); //创建匹配给定输入与此模式的匹配器。
ArrayList arrays = new ArrayList();
while (result.find()) { //如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。
//将对象存放到arrays中
arrays.add(result.group());
}
System.out.print("存在数字,有 "+arrays.size()+" 个,分别为:");
Object[] SmallLetter = arrays.toArray();
print(SmallLetter);
}else{
System.out.println("不存在数字。");
}
System.out.println();
//空格号
if(str.matches(".*[ ].*")){
String pattern="[ ]"; //正则表达式
Pattern p=Pattern.compile(pattern); //将给定的正则表达式编译到模式中。
Matcher result=p.matcher(str); //创建匹配给定输入与此模式的匹配器。
ArrayList arrays = new ArrayList();
while (result.find()) { //如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。
//将对象存放到arrays中
arrays.add(result.group());
}
System.out.print("存在空格号,有 "+arrays.size()+" 个");
}else{
System.out.println("不存在空格号。");
}
System.out.println();
//符号
if(str.matches(".*[^A-Za-z0-9_].*")){
String pattern="[^A-Za-z0-9_]"; //正则表达式
Pattern p=Pattern.compile(pattern); //将给定的正则表达式编译到模式中。
Matcher result=p.matcher(str); //创建匹配给定输入与此模式的匹配器。
ArrayList arrays = new ArrayList();
while (result.find()) { //如果匹配成功,则可以通过 start、end 和 group 方法获取更多信息。
//将对象存放到arrays中
arrays.add(result.group());
}
System.out.print("存在符号,有 "+arrays.size()+" 个,分别为:");
Object[] SmallLetter = arrays.toArray();
print(SmallLetter);
}else{
System.out.println("不存在数字。");
}
System.out.println();
}
public void print(Object[] obj){
for(int i = 0;i < obj.length;i++){
System.out.print(obj[i]+" ");
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
StringClassfied sc1 = new StringClassfied();
sc1.ClassifyString(str);
}}
感谢你的提示,我查阅了API以及搜索了正则表达式的使用。
根据你的提示,我修改了下代码(如上),但是有一个问题,就是符号比如逗号,句号如何用正则表达式来判断?