java中的符号计数
我正在使用一个程序读取一个文本文件,然后计算(大写、小写、空格)的数量。我的问题是如何将其余的文本(例如,“.()/:;)一起计算 下面是一些代码java中的符号计数,java,methods,symbols,Java,Methods,Symbols,我正在使用一个程序读取一个文本文件,然后计算(大写、小写、空格)的数量。我的问题是如何将其余的文本(例如,“.()/:;)一起计算 下面是一些代码 for (int b = 0; b < crunchifyLine.length(); b++) { if (Character.isUpperCase(crunchifyLine.charAt(b))) { UppeLetter++; } } for (int b = 0; b < crunchifyL
for (int b = 0; b < crunchifyLine.length(); b++) {
if (Character.isUpperCase(crunchifyLine.charAt(b))) {
UppeLetter++;
}
}
for (int b = 0; b < crunchifyLine.length(); b++) {
if (Character.isLowerCase(crunchifyLine.charAt(b))) {
LowerLetter++;
}
}
for (int c = 0; c < crunchifyLine.length(); c++) {
if (Character.isWhitespace(crunchifyLine.charAt(c))) {
spaceNum++;
}
}
for(int b=0;b
这不是一个优雅的解决方案,但它仍然适用于您:
final int SPACE_ASCII = ' ';
final int UPPER_CASE_LOWER_ASCII_LIMIT = 'A';
final int UPPER_CASE_UPPER_ASCII_LIMIT = 'Z';
final int LOWER_CASE_LOWER_ASCII_LIMIT = 'a';
final int LOWER_CASE_UPPER_ASCII_LIMIT = 'z';
final int DIGIT_LOWER_ASCII_LIMIT = '0';
final int DIGIT_UPPER_ASCII_LIMIT = '9';
final String OTHER_CHARS = "\". ' ()/ :;";
int uppercaseCount = 0;
int lowercaseCount = 0;
int whitespaceCount = 0;
int otherSymbolsCount = 0;
int discardedSymbolsCount = 0;
String text = "$Your String Goes here. 123#";
for (int i = 0; i < text.length(); i++) {
Character c = text.charAt(i);
if (c == SPACE_ASCII) {
whitespaceCount++;
} else if ((c >= DIGIT_LOWER_ASCII_LIMIT && c <= DIGIT_UPPER_ASCII_LIMIT)
|| OTHER_CHARS.contains(String.valueOf(c))) {
otherSymbolsCount++;
} else if (c >= UPPER_CASE_LOWER_ASCII_LIMIT && c <= UPPER_CASE_UPPER_ASCII_LIMIT) {
uppercaseCount++;
} else if (c >= LOWER_CASE_LOWER_ASCII_LIMIT && c <= LOWER_CASE_UPPER_ASCII_LIMIT) {
lowercaseCount++;
} else {
discardedSymbolsCount++;
}
}
System.out.println("White Space : " + whitespaceCount);
System.out.println("Upper Case : " + uppercaseCount);
System.out.println("Lower Case : " + lowercaseCount);
System.out.println("Others : " + otherSymbolsCount);
System.out.println("Discarded : " + discardedSymbolsCount);
final int SPACE_ASCII='';
最终整数上限、大小写、ASCII下限='A';
最终整数上限(大写)ASCII上限='Z';
最终整数下限(大写)ASCII下限='a';
最终整数下限值上限值='z';
最后的整数位数\u下限\u ASCII\u限制='0';
最终整数位数上限ASCII上限='9';
最后一个字符串OTHER_CHARS=“\”()/:;”;
int uppercaseCount=0;
int lowercaseCount=0;
int whitespaceCount=0;
int-otherSymbolsCount=0;
int discardedSymbolsCount=0;
String text=“$Your String在这里。123#”;
对于(int i=0;i=数字\u下限\u ASCII\u限值&&c=大写\u小写\u ASCII\u限值&&c=小写\u下限\u ASCII\u限值&&c基于“部分代码”,我会将其更改为类似于:
for (int b = 0; b < crunchifyLine.length(); b++) {
if (Character.isUpperCase(crunchifyLine.charAt(b))) {
UppeLetter++; // [sic]
} else if (Character.isLowerCase(crunchifyLine.charAt(b))) {
LowerLetter++;
} else if (Character.isWhitespace(crunchifyLine.charAt(c))) {
spaceNum++;
} else {
restOfTheTextTogether++;
}
}
此外,对于样式,您正在混合以小写开头的变量和以大写开头的变量,您可以看到标记通常表示不同的含义(尽管这只是惯例)。我认为问题在于找到类似nextInt()的东西,可能是nextSymbol()查找字符串中的符号,或将十进制数转换为二进制数的两种方法(代码或方法),因此不一定需要编写代码。我不知道答案,但我认为这不符合主题。
restOfTheTextTogether = crunchifyLine.length() -
UppeLetter /*[sic]*/ - LowerLetter - spaceNum;