内容
1)从键盘输入一个含有大小写字母、数字、特殊符号的字符串,去除字符串中所有的非英文字符之后,得到新的字符串。输出这个新字符串。
2)再统计新字符串中每种英文字符的个数,并输出统计结果(字符个数为零的情况不用输出)。
代码
import java.io.Reader;
import java.util.Scanner;
import java.lang.*;
public class test {
public static void main(String args[]) {
System.out.println("请输入一串字符串:");
Scanner reader = new Scanner(System.in);
String string = reader.nextLine();
String regex = "[\\s\\d\\p{Punct}]+"; //匹配由空格,数字,以及相应符号组成的字符序列
String words[] = string.split(regex);
String fi=""; //将字符数组合并成一个字符串
for(int i=0;i<words.length;i++) {
fi=fi+words[i];
}
System.out.println(fi); //打印结果
int arr[] = new int [52]; //将单词个数统计在arr中
char d[]=fi.toCharArray(); //将字符串用字符数组表示
for(int k=0;k<d.length;k++) //统计每个字符的个数
{
arr[(int)(d[k])-65]++;
}
for(int j=0;j<arr.length;j++) { //输出结果
if(arr[j]!=0) {
System.out.println((char)(j+65) + "的数目为:"+ arr[j]);
}
}
}
}
测试
心得体会
凌晨,改完自己的java代码,突发奇想来csdn写一篇自己的博客,希望这是个好的开始,一会我会一直努力的! 对于String类,记忆起来还比较困难,主要是操作代码过少,在后期要加强代码量。 这个程序主要问题出现在字符数组与字符串之间的转换、正则表达式的使用上,要仔细思考数据类型去调用相应的函数。