2016-10-26 3 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 
} 

귀하의 카운터가 루프 반복으로 증가됩니다. 따라서 입력에서 정확한 문자 수로 끝납니다!