Java:计算空格和制表符
Java: Counting Whitespace and Tabs
我无法弄清楚如何让 Java 吐出用户输入字符串中的空格和制表符的数量。我使用了 isWhiteSpace,它只计算字符串中的字符数。
如果有任何帮助,我将不胜感激,
谢谢。
我的代码:
import java.util.Scanner;
public class CharsInLine
{
public static void main(String[] args)
{
Scanner console = new Scanner(System.in);
int numberUpperCase = 0;
int numberLowerCase = 0;
int numberWhiteSpace = 0;
System.out.print("Enter a line of text : ");
String inLine = console.nextLine();
int i = 0;
while ( i < inLine.length() ) {
char currentCharacter = inLine.charAt(i);
if ( Character.isUpperCase(currentCharacter) ) {
numberUpperCase++; }
if ( Character.isLowerCase(currentCharacter) ) {
numberLowerCase++; }
if( Character.isWhitespace(currentCharacter) ); {
numberWhiteSpace++; }
i++;
}
System.out.println("There are " + numberUpperCase + " upper case characters, " + numberLowerCase + " lower case characters, and " + numberWhiteSpace + " white space characters.");
console.close(); }
}
您的问题在这里:
if( Character.isWhitespace(currentCharacter) );
尾随“;”在那条线上... kills 你的 if!
换句话说,您的代码实际上是这样做的:
if( Character.isWhitespace(currentCharacter) ) {
;
}
{
... counter increase
}
您的计数器随着 each 循环迭代而增加。因此最终得到输入中的确切字符数!
我无法弄清楚如何让 Java 吐出用户输入字符串中的空格和制表符的数量。我使用了 isWhiteSpace,它只计算字符串中的字符数。
如果有任何帮助,我将不胜感激,
谢谢。
我的代码:
import java.util.Scanner;
public class CharsInLine
{
public static void main(String[] args)
{
Scanner console = new Scanner(System.in);
int numberUpperCase = 0;
int numberLowerCase = 0;
int numberWhiteSpace = 0;
System.out.print("Enter a line of text : ");
String inLine = console.nextLine();
int i = 0;
while ( i < inLine.length() ) {
char currentCharacter = inLine.charAt(i);
if ( Character.isUpperCase(currentCharacter) ) {
numberUpperCase++; }
if ( Character.isLowerCase(currentCharacter) ) {
numberLowerCase++; }
if( Character.isWhitespace(currentCharacter) ); {
numberWhiteSpace++; }
i++;
}
System.out.println("There are " + numberUpperCase + " upper case characters, " + numberLowerCase + " lower case characters, and " + numberWhiteSpace + " white space characters.");
console.close(); }
}
您的问题在这里:
if( Character.isWhitespace(currentCharacter) );
尾随“;”在那条线上... kills 你的 if!
换句话说,您的代码实际上是这样做的:
if( Character.isWhitespace(currentCharacter) ) {
;
}
{
... counter increase
}
您的计数器随着 each 循环迭代而增加。因此最终得到输入中的确切字符数!