2014-04-23 4 views
0
import java.util.Queue; 
import java.util.Scanner; 
import java.util.LinkedList; 

class PalindromeTest 
{ 

    public static void main(String[] args) 
    { 

      System.out.print("Enter any string:"); 
      Scanner in = new Scanner(System.in); 
      String inputString = in.nextLine(); 
      Queue queue = new LinkedList(); 
      for (int i = inputString.length()-1; i >=0; i--) 
      { 
       queue.add(inputString.charAt(i)); 
      } 

      String reverseString = ""; 

      while (!queue.isEmpty()) 
      { 
       reverseString = reverseString+queue.remove(); 
      } 
      if (inputString.equals(reverseString)) 
       System.out.println("The input String is a palindrome."); 
      else 
       System.out.println("The input String is not a palindrome."); 
    } 
} 

문자열 입력이 Palindrome 인 경우이 코드가 인쇄되지만 빈 줄을 입력 할 때 루프를 만들고 종료하는 방법을 모르면이 코드가 인쇄됩니다. 나는 do while을 시도했지만 아무런 운이 없었습니다.사용자가 java에 빈 ​​줄을 입력 할 때까지이 루프를 만드는 방법은 무엇입니까?

답변

0

어쩌면?

 System.out.print("Enter any string:"); 
     Scanner in = new Scanner(System.in); 
     String inputString; //extract the inputString as a variable 
     while (!(inputString = in.nextLine()).equals("")) //just add this loop, the rest is same as yours 
     { 
      Queue queue = new LinkedList(); 
      for (int i = inputString.length() - 1; i >= 0; i--) 
      { 
       queue.add(inputString.charAt(i)); 
      } 

      String reverseString = ""; 

      while (!queue.isEmpty()) 
      { 
       reverseString = reverseString + queue.remove(); 
      } 
      if (inputString.equalsIgnoreCase(reverseString)) 
      { 
       System.out.println("The input String is a palindrome."); 
      } 
      else 
      { 
       System.out.println("The input String is not a palindrome."); 
      } 
      System.out.print("Enter any string:"); 
     } 
+0

수정 하시겠습니까? String inputString; while (! (inputString = in.nextLine()). equals ("")) – user3563438

+0

지금 무엇을 묻고 있는지 이해할 수 없습니다. –

+0

정확히 어디에서 변경 했습니까? 이제 코드 블록이 보입니다. 죄송합니다 – user3563438