2011-10-24 5 views
0

사용자가 입력 한 문구에 2 단어 이상이 있는지 찾으려고합니다. 그렇지 않으면 적어도 2 단어로 입력 할 때까지 문구를 입력하라고 계속 요청하십시오.문자열에 적어도 2 단어가 있는지 찾으려고 시도합니다.

내 코드는 다음과 같습니다. 두 단어를 입력했는지 성공적으로 감지 할 수 있으며 두 번째 단어를 처음 입력하지 않으면 성공적으로 감지하지만 두 번째 단어를 두 번째 단어로 다시 입력하면 프로그램이 종료되었습니다.

private static void stringfunctions() { 
    String phrase; 
    int count = 0; 
    Scanner input = new Scanner(System.in); 

    while (count < 2) { 
     System.out.println("Please enter a multiple word phrase: "); 
     phrase = input.nextLine(); 
     String[] arrPhrase = phrase.split(" "); 
     for (int i = 0; i < arrPhrase.length; i++) { 
      if (arrPhrase[i].equals(" ")) { 
      } else { 
       count++; 
      } 
     } 

    } 
+0

숙제로 태그해야합니까? – Marvo

+0

숙제와 같으므로 여기에 힌트가 있습니다. 입력에 별도의 방법으로 적어도 두 단어가 있는지 확인하는 논리를 만드십시오. 사용하기가 더 쉬울 것입니다. 또한 탭 문자와 같은 내용을 무시할뿐만 아니라 순서대로 여러 공백을 오 탐지 할 수 있음을 명심하십시오. 당신은 정규식을 들여다보고 그들과 놀고 당신이 당신의 criterium을 발견하는 regexp를 생각해 낼 수 있는지보기를 원할 것입니다. –

+0

두 개 이상의 공백 문자로 나눌 수 있도록 정규식을 검색하고 싶을 것입니다. 그 시점에서, 당신은 카운트를 할 필요가 없습니다, 당신은 그냥 배열의 크기 (루프를 제어하는 ​​부울 변수를 사용해야합니다 -'inputTwoWords' 또는 뭔가)의 단어의 수를 감지 할 수 있어야합니다. 또한 사용자가 두 번째로 입력 할 단어가 1 단어 만 입력해야하는 이유에 대해 생각해보십시오. 프로그램을 종료시키는 원인이 될 수 있습니다. –

답변

1

이것은 숙제이기 때문에 답을주지는 않지만 반복문을 통과 할 때 count의 값을 자세히 관찰하십시오.

+0

감사합니다. 직접 응답이 필요하지 않았습니다. – MJ93

3

테스트 후의 리셋 횟수. 문제는 while 루프가 카운트를 넘기 자마자 종료됩니다. 2

관련 문제