求帮忙解释下,谢谢
public class ExDemo {public static void main(String args[]) {
System.out.println("请输入字符串:");
Scanner scan = new Scanner(System.in);
String str = scan.next();
String E1 = "[\u4e00-\u9fa5]";
String E2 = "[a-zA-Z]";
String E3 = "[0-9]";
int countH = 0;
int countE = 0;
int countS = 0;
char[] arrChar = str.toCharArray();
String[] arrStr = new String[arrChar.length];
for (int i = 0; i < arrChar.length; i++) {
arrStr[i] = String.valueOf(arrChar[i]);
}
这里为什么要把输入的字符转换2次类型啊?
char[] arrChar = str.toCharArray();
String[] arrStr = new String[arrChar.length]; --------------------编程问答-------------------- 可能是需要把一个字符串拆分成以每个字符组成的字符串的数组,没有现成的方法,所以第一次,把字符串拆分成单个字符数组,再把单个字符转成字符串形式,放入字符串数组。仅是个人看法。 --------------------编程问答-------------------- 咳咳,从这个程序声明:
int countH = 0;
int countE = 0;
int countS = 0;
这三个参数,应该是为了计算 汉字,字母,数字 分别出现的个数。
将字符串接受进来的时候,转换成字符数组,它是相当于把每个单独的字符拆分出来。但是char类型是 ASCLL值,不能使用
String E1 = "[\u4e00-\u9fa5]";
String E2 = "[a-zA-Z]";
String E3 = "[0-9]";
这三个变量的正则匹配。
因此必须把它们在单独的放入字符串数组,转换成字符串,这样就可以使用方便使用正则匹配了。
我的理解是这样的。
补充:Java , Java相关