2016-09-19 87 views
-4

我有一些理論上的想法,但我不太瞭解這門語言。如何解析Java中的字符串?

我需要從控制檯線閱讀,然後看看是否匹配的部件了一個符號表,其中包括關鍵字:"print [variable]""load [variable]""mem [variable]""sqrt""stop",以及數學符號。

它也需要認識到自己的變量(如"c = a + b"爲好。)

所以......它並不難,在理論上。您將檢查與關鍵字或變量匹配的字符串的第一個字符。如果他們這樣做,繼續循環通過該關鍵字或變量來檢查它是否是相同的字符串,直到你遇到一個空間。

但是,我不知道該怎麼做。

編輯:爲了使它不「太寬」,這裏是一個問題的改寫:如何檢查字符串中的字符與Java中的字符進行比較?因爲這個問題並不明顯?我不知道。

+0

確定。我特別詢問如何檢查字符串中的字符以便與東西進行比較。地獄是如何「太寬泛」?是否我有這個問題的背景? – SangoProductions

回答

1

你在說什麼實際上是編譯器的非常基本的部分和它的第一部分。你在理論上特別提到的基本上是一個詞法分析器。可以在線獲得大量代碼,用於編譯所有構建塊。我建議你閱讀編譯器構建理論,特別是詞法分析器部分。這裏有一些鏈接。 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

我希望這有助於

+0

我很感激。但是,問題是用Java實現的。 – SangoProductions

1

不知道我是否真正理解你的問題。 但是,如果要從控制檯讀取用戶輸入並將它們存儲到變量中,則可以使用Scanner類,然後可以使用If語句檢查輸入是否包含所需的單詞,然後按需要處理它們。

下面是一個例子:

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

如果你已經說toCheck是「什麼」,但我不認爲這很有效,但行並不以「什麼」結束,而是「什麼+什麼」 – SangoProductions