2017-02-04 129 views
1

我正在做家庭作業,無法在我的在線教科書或其他任何地方找到答案。如何解析Java中的字符串?

我的家庭作業的問題是四個部分:

  1. 提示用戶輸入一個包含用逗號分隔的兩個字符串的字符串。

  2. 如果輸入字符串不包含逗號,則報告錯誤。繼續提示,直到輸入有效的字符串。注意:如果輸入包含逗號,則假定輸入也包含兩個字符串。

  3. 從輸入字符串中提取兩個單詞並刪除所有空格。將字符串存儲在兩個單獨的變量中並輸出字符串。

  4. 使用循環,擴展程序來處理多行輸入。繼續直到用戶輸入q退出。

 
Final outcome should print out as follows: 
Enter input string: Jill, Allen 
First word: Jill 
Second word: Allen 
 
Enter input string: Golden , Monkey 
First word: Golden 
Second word: Monkey 
 
Enter input string: Washington,DC 
First word: Washington 
Second word: DC 

輸入輸入字符串:Q

我的代碼輸出不正確。我不知道如何使自動,不顯示在我的第一個字或顯示爲我的第二個字。我曾嘗試使用 String [] array = s.split(",);,並且類程序無法識別此命令和錯誤。

這是我的代碼:

import java.util.Scanner; 

public class ParseStrings { 
    public static void main(String[] args) { 
     Scanner scnr = new Scanner(System.in); 
     Scanner inSS = null;     
     String firstWord = " ";     
     String secondWord = ""; 
     String lineString = ""; 
     boolean inputDone = false; 

     while (!inputDone) { 
     lineString = scnr.nextLine(); 
     inSS = new Scanner(lineString); 
     firstWord = inSS.next(); 
     System.out.print("Enter input string: \n"); 


     if (firstWord.equals("q")){ 
      System.out.println("First word: " + firstWord); 
      inputDone = true; 
     } else { 
      secondWord = inSS.next(); 
      System.out.println("First word: " + firstWord); 
      System.out.println("Second word: " + secondWord); 
      System.out.println(); 
     } 
     } 


     return; 
    } 
} 

我如何可以編碼此字符串包含和排除逗號,並打印出錯誤。我不明白我需要做什麼。

+0

你還沒有聲明變量是's',java怎麼能分割它? – paper1111

回答

1

我不想編寫解決方案的代碼。只要給你一些意見,讓你自己得到正確的答案。畢竟這是你的鍛鍊。

  1. 你不需要使用兩個Scanner就足夠了。
  2. 檢查的scnr.nextLine()
  3. 的字符串方法執行之後可變lineStringsplit通常有助於找出
+0

謝謝你的幫助,但我仍然不明白。我設法刪除最後一個字符,所以逗號輸入不是自動的,並添加一行輸出錯誤消息。我也需要這個來循環更多的任務,所以我將不得不重新訪問我的代碼,因爲它沒有循環。 – rmac

0
import java.util.Scanner; 

public class ParseStrings { 
    public static void main(String[] args) { 
     Scanner scnr = new Scanner(System.in); 
     String userInput = ""; 
     boolean inputDone = false; 

     while (!inputDone) { 
     System.out.print("Enter input string: \n"); 
     userInput = scnr.nextLine() 


     if (userInput.equals("q")){ 
      System.out.println("First word: " + userInput); 
      inputDone = true; 
     } else { 
      String[] userArray = userInput.split(","); 
      System.out.println("First word: " + userArray[0]); 
      System.out.println("Second word: " + userArray[1]); 
      System.out.println(); 
     } 
     } 


     return; 
    } 
} 

說明: 首先,創建一個對象Scanner。然後,用戶的輸入被存儲在userInput中。之後,java會檢查用戶是否輸入了q,如果是,則結束應用程序。否則,java會將字符串分成兩個單詞然後打印出來。

請記住,理解代碼是學習編程語言的一個非常重要的過程,因此請理解代碼,而不是複製並粘貼它以提交作爲您的功課。

+0

感謝您的詳細信息。我看到我可以使用數組,然後添加以產生額外的錯誤:字符串中沒有逗號。 – rmac

+0

@rmac希望這對你有所幫助!如果這是正確的答案,您可以點擊左邊的勾號 – paper1111