Java:计算空白和制表符

时间:2016-10-26 14:00:21

标签: java string if-statement while-loop whitespace

我无法弄清楚如何让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(); }
}

1 个答案:

答案 0 :(得分:4)

你的问题在这里:

 if( Character.isWhitespace(currentCharacter) ); 

那个尾随“;”在那一行... 杀死你的if!

换句话说,您的代码实际上是这样做的:

 if( Character.isWhitespace(currentCharacter) ) {
   ; 
 }
 {
    ... counter increase
 }

每次循环迭代都会增加您的计数器。因此最终得到输入中确切的字符数!