使用java语言编写程序,统计从控制台输入的一行字符串中数字个数、字母个数和其他字符个数,并打印输出。

2024-11-08 21:42:51
推荐回答(3个)
回答1:

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
String intpatten="[0-9]";
String charpatten="[a-zA-Z]";
String signalpatten="\\W";
int intflag=0;
int charflag=0;
int signalflag=0;
String str=sc.next();
String[] strs = new String[str.length()];
for(int i=0;istrs[i]=str.substring(i,i+1);
if(strs[i].matches(intpatten))
intflag++;
else if(strs[i].matches(charpatten))
charflag++;
else
signalflag++;
}
System.out.println("字符个数:"+charflag+" 数字个数"+intflag+" 非字符数:"+signalflag);

}
正则表达式做 看不懂追问

回答2:

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
String intpatten="[0-9]";
String charpatten="[a-zA-Z]";
String signalpatten="\\W";
int intflag=0;
int charflag=0;
int signalflag=0;
String str=sc.next();
String[] strs = new String[str.length()];
for(int i=0;istrs[i]=str.substring(i,i+1);
if(strs[i].matches(intpatten))
intflag++;
else if(strs[i].matches(charpatten))
charflag++;
else
signalflag++;
}
System.out.println("字符个数:"+charflag+" 数字个数"+intflag+" 非字符数:"+signalflag);

}

回答3:

输入的String .length 就是个数。字母和数字的区分在计算机中是有数字代表的。判读在不在这个范围内就行了。然后再取个数