2013-10-22 1 views
-3

문자열을 사용하여 공간에서 분할하고 가장 작은 하위 문자열의 길이를 인쇄하는 프로그램을 만들고 싶습니다.공간 하위 문자열을 만들 때

필자가 작성했지만 첫 번째 문자열의 길이 만 인쇄합니다. 내 문제는 무엇입니까?

Scanner input = new Scanner(System.in); 
     String inp = input.nextLine(); 
     int counter = 0; 
     String[]helper =new String[inp.length()]; 
     int minlength = Integer.MAX_VALUE; 
     for (int i = 0; i < inp.length(); i++) 
     { 
      if (inp.charAt(i) != ' ') 
      { 
       counter++; 
       continue; 
      } 
      minlength = Math.min(counter, minlength); 
      counter = 0; 
     } 
     System.out.println(minlength); 
+4

공간 *이있는 * partite는 무엇을 의미합니까? –

+0

partite는로 나눈 값이고 빈 칸에서 나눕니다. –

+0

당신이 무엇을 요구하고 있는지 분명하지 않습니다. 입력 및 예상 결과의 몇 가지 예를 포함하면 귀하의 의미를 이해하는 데 도움이 될 수 있습니다. – Pshemo

답변

0

사용. split 공백으로 문자열을 분할하는 방법.

String[] stringArray = input.split(" "); 

을하지만 첫 번째 옵션이 더 나은 이유는이 소스 설명 : 일반적으로

String[] stringArray = input.split("\\s+"); 

당신은 할 수 그것을 통해 How do I split a string with any whitespace chars as delimiters?

당신이 String[] stringArray이 있으면, 당신이 할 수있는 루프가와를 찾아 가장 작은 길이.

int minlength = Integer.MAX_VALUE; 
for(int i = 0; i < stringArray.length; i++){ 
    if(stringArray[i].length() < minlength){ 
     minlength = stringArray[i].length(); 
    } 
} 
System.out.println(minlength);