2017-12-04 1 views
0

Ich bin etwas verloren auf, was zu tun ist.Ich bin auf meinem Java Hausaufgaben Parsing Strings

Es gibt 4 Teile.

  1. Fordern Sie den Benutzer zur Eingabe einer Zeichenfolge auf, die zwei durch ein Komma getrennte Zeichenfolgen enthält.
  2. Fehler melden, wenn die Eingabezeichenfolge kein Komma enthält. Setzen Sie fort, bis ein gültiger String eingegeben wird. Hinweis: Wenn die Eingabe ein Komma enthält, wird davon ausgegangen, dass die Eingabe auch zwei Zeichenfolgen enthält.
  3. Extrahieren Sie die beiden Wörter aus der Eingabezeichenfolge, und entfernen Sie alle Leerzeichen. Speichern Sie die Zeichenfolgen in zwei separaten Variablen und geben Sie die Zeichenfolgen aus.
  4. Mit einer Schleife erweitern Sie das Programm, um mehrere Eingabezeilen zu verarbeiten. Fahren Sie fort, bis der Benutzer q zum Beenden eingibt.

endgültiges Ergebnis auszudrucken wie folgt:

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 

Enter input string: q 

Ich habe heraus alles herausgefunden, kann aber nicht den zweiten Teil herauszufinden. Ich weiß nicht genau, wie man den Code macht, denn er enthält kein Komma.

Hier ist mein Code:

import java.util.Scanner; 

public class ParseStrings { 

public static void main(String[] args) { 
    Scanner scnr = new Scanner(System.in); 
    String lineString = ""; 
    int commaLocation = 0; 
    String firstWord = ""; 
    String secondWord = ""; 
    boolean inputDone = false; 

    while (!inputDone) { 
     System.out.println("Enter input string: "); 
     lineString = scnr.nextLine(); 


     if (lineString.equals("q")) { 
      inputDone = true; 
     } 

     else { 
     commaLocation = lineString.indexOf(','); 
     firstWord = lineString.substring(0, commaLocation); 
     secondWord = lineString.substring(commaLocation + 1, lineString.length()); 

     System.out.println("First word: " + firstWord); 
     System.out.println("Second word:" + secondWord); 
     System.out.println(); 
     System.out.println(); 
     } 
    } 


    return; 
    } 
} 
+1

Ich wähle diese Frage zu schließen, wie Off-Topic, weil [ "Fragen für Hausaufgaben Hilfe bitten müssen ** Zusammenfassung der Arbeit sind Sie bisher getan haben * * um das Problem zu lösen, und eine ** Beschreibung der Schwierigkeit, die Sie haben, ** es zu lösen. "] (http://stackoverflow.com/help/on-topic) – azurefrog

+0

' if (! string.contains (", ")) {/ * etwas * /}' – Michael

+0

@azurefrog aber er hat ... – alfasin

Antwort

1

Lassen Sie uns auf der Linie einen Blick:

commaLocation = lineString.indexOf(','); 

den Fall gibt es kein Komma, .indexOf() kehrt -1 - Sie können es nutzen und ein hinzufügen if Zustand direkt nach dieser Linie und behandeln Sie diesen Fall auch!

+0

Danke, ich dachte, es war -1 aber war mir nicht sicher, wo ich es setzen soll –

0

können Sie verwenden:

if (input.matches("[^,]+,[^,]+")) {//If the input match two strings separated by a comma 

    //split using this regex \s*,\s* zero or more spaces separated by comman 
    String[] results = input.split("\\s*,\\s*"); 

    System.out.println("First word: " + results[0]); 
    System.out.println("Second word: " + results[1]); 
} else { 
    //error, there are no two strings separated by a comma 
}