2016-09-19 3 views
-4

У меня есть несколько теоретических идей, но я плохо знаю язык.Как разобрать строки в Java?

мне нужно прочитать в строке с консоли, а затем увидеть, если детали совпадают с символом таблицы, которая включает в себя ключевые слова: "print [variable]", "load [variable]", "mem [variable]", "sqrt" и "stop", а также математические символы.

Кроме того, необходимо признать переменные сами по себе (например, "c = a + b" а.)

Так ... это не так уж трудно, в теории. Вы проверили бы первый символ строки, сопоставляемый ключевыми словами или переменными. Если они это сделают, продолжайте перебирать это ключевое слово или переменную, чтобы проверить, является ли она одной и той же строкой, пока вы не нажмете пробел.

Однако я не знаю, как это сделать.

EDIT: Чтобы сделать его «слишком широким», перепишите вопрос: как проверить символы чтения в строке, чтобы сравнить с материалами в Java? Потому что вопрос не был очевиден? Не знаю.

+0

OK. Я спросил конкретно, как я могу проверить символы чтения в строке, чтобы сравнить с материалами. Как, черт возьми, это «слишком широкий»? Неужели у меня есть контекст для вопроса? – 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

Смежные вопросы