2016-09-19 6 views
-4

Ich habe ein paar, theoretische Ideen, aber ich kenne die Sprache nicht gut.Wie analysiere ich Zeichenfolgen in Java?

Ich brauche in einer Linie von der Konsole zu lesen, dann sehen, ob Teile mit einer Symboltabelle übereinstimmen, die die Schlüsselwörter enthalten: "print [variable]", "load [variable]", "mem [variable]", "sqrt" und "stop" sowie mathematische Symbole.

Es muss auch die Variablen auf eigene Faust erkennen (wie "c = a + b" auch.)

Also ... es ist nicht so schwer, in der Theorie. Sie würden das erste Zeichen der Zeichenfolge überprüfen, das mit Schlüsselwörtern oder Variablen übereinstimmt. Wenn dies der Fall ist, führen Sie einen Durchlauf durch das Schlüsselwort oder die Variable durch, um zu prüfen, ob es sich um die gleiche Zeichenfolge handelt, bis Sie ein Leerzeichen drücken.

Allerdings weiß ich nicht, wie das geht.

EDIT: Um es nicht "zu breit" zu machen, hier ist eine Umformulierung der Frage: Wie überprüfe ich die Zeichen eines eingelesenen Strings, um mit Sachen in Java zu vergleichen? Weil die Frage nicht offensichtlich war? Ich weiß nicht.

+0

OK. Ich fragte speziell, wie ich die Zeichen einer eingelesenen Zeichenfolge überprüfe, um sie mit anderen zu vergleichen. Wie zum Teufel ist das "zu breit"? Habe ich Kontext für die Frage? – SangoProductions

Antwort

1

Was Sie sagen, ist eigentlich die Bausteine ​​eines Compilers und der allererste Teil davon. Worauf Sie in der Theorie spezifisch verweisen, ist im Grunde genommen ein lexikalischer Analysator. Tonnen von Codes sind online verfügbar, um den Compiler mit all seinen Bausteinen zu erstellen. Ich schlage vor, Sie lesen die Theorie über Compiler Construction, insbesondere den lexikalischen Analysator Teil. Hier sind einige Links dazu. 1. https://en.wikipedia.org/wiki/Lexical_analysis 2. https://en.wikibooks.org/wiki/Compiler_Construction/Lexical_analysis 3. http://www.tutorialspoint.com/compiler_design/compiler_design_lexical_analysis.htm

Ich hoffe, die

+0

Ich schätze es. Die Frage war jedoch die Implementierung in Java. – SangoProductions

1

Nicht sicher hilft, wenn ich verstehe Ihre Frage wirklich. Wenn Sie jedoch Benutzereingaben von der Konsole lesen und in Variablen speichern möchten, können Sie die Scanner-Klasse verwenden. Dann können Sie mit einer If-Anweisung überprüfen, ob die Eingaben die gewünschten Wörter enthalten und diese dann wie gewünscht behandeln. Hier

ein Beispiel:

public class ReadConsole2 { 

    public static void main(String[] args) { 

     Scanner scanner = new Scanner(System.in); 
     String toCheck = "what"; 

     while (true) { 

      System.out.print("Enter something : "); 
      String input = scanner.nextLine(); 

      if (toCheck.equals(input)) { 
       // do something 
       break; 
      } 

      System.out.println("input : " + input); 
      System.out.println("-----------\n"); 
     } 

     scanner.close(); 

    } 

} 
+0

Ich glaube nicht, dass das funktioniert, wenn du sagst, der toCheck ist "was", aber die Zeile endet nicht bei "was" und eher "was + was"? – SangoProductions