当前位置:编程学习 > JAVA >>

求帮忙解释下,谢谢

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相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,