2016-10-26 8 views
1

ユーザー入力の文字列にある空白とタブの量をJavaに吐き出す方法を正確に把握するのに問題があります。私はisWhiteSpaceを使用し、文字列内の文字の数を数えます。Java:空白とタブの計算

何か助けていただければ幸いです。

ありがとうございます。

マイコード:

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(); } 
} 
+0

ここに余分なセミコロンがあります。if(Character.isWhitespace(currentCharacter)); – facundop

+0

時には、最も難しいと判明している最も簡単なことです...私はそれを越えて、それをキャッチしませんでした。 – Aramza

+0

自動インデントを使用すると、そのような問題が明らかになります。 – chrylis

答えて

4

あなたの問題はここにある:

if(Character.isWhitespace(currentCharacter)); 

末尾のこと ";"その行に... 殺すもしあなた!言い換えれば

、あなたのコードは、実際にこのん:

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

あなたのカウンターはループ反復で増加します。したがって、入力の正確な文字数で終わる!

関連する問題