Чтение Java-программы

Я пытаюсь прочитать программу Java.

Я использую эту строку кода.

String[] words = line.split(" ");

Разделяет ли он также ';' из предыдущего имени переменной?

Например

int x = test;

Как бы разделить, РАЗДЕЛИТЬ это?

Попробуйте и посмотрите, получится или нет.

RaminS 26.07.2019 22:18
int x = test Простите, а что это? Что вы имеете в виду, как разделение строки влияет на целое число
Nexevis 26.07.2019 22:19

Обратите внимание, что «токенизация» Java-программы — довольно сложный процесс, и его нельзя выполнить с помощью простых вызовов split.

greg-449 26.07.2019 22:33

почему он должен разделяться на ; - компьютеры делают то, что вы им порядок, а не то, что вы хотите, чтобы они делали - нигде вы не указали ; (кстати, как написал Грег, это не тривиально, много пробелов необязательны, например, int x=test; (нет пробелы вокруг равны) действителен)

user85421 26.07.2019 22:39

если было 2 пробела? будет ли он разделять пространство также как строку?

user11771804 27.07.2019 00:05
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
5
60
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Если бы строка была int x = test; и вы указали line.split(" "), она разделилась бы на символ " " (пустое место), поэтому

words=["int","x"," = ","test;"]

Вы указываете символ, на который хотите разделить строку, внутри метода разделения. Итак, если бы моя линия была "Hi#I'm;#Bob" и я побежал String[] words = line.split("#"), результат был бы

words = ["Hi","I'm;",Bob"]. 

Это не повлияет на символ ';', если вы не укажете

Нет, line.split(" ") отделяет каждое слово только пробелом. В твоем случае,

int x = test;

Пробелы находятся между "int" и "x", "x" и "=", "=" и "test;", поэтому вывод будет,

word[0] = "int";
word[1] = "x";
word[2] = " = ";
word[3] = "test;";

Если вы хотите разделить как пробелом, так и точкой с запятой, используйте регулярное выражение,

String[] words = line.split("[ ;]");

почему обратный слеш?

user85421 26.07.2019 22:37

где ты это взял? ссылку на этот учебник, пожалуйста! 20+ лет, и я никогда не слышал об этом, всегда думал, что это для экранирования специальных символов (например, \\., чтобы получить точку, или \\- внутри []) - нет необходимости в ИЛИ внутри [] - они на самом деле означают любой из перечисленных символов (или в заданном диапазоне - {ИЛИ равно |}, но вне []s)

user85421 26.07.2019 22:49

и, кстати, я предпочитаю официальную документацию: Шаблон - пожалуйста, проверьте это

user85421 26.07.2019 22:52

все еще неправильно, как я уже написал "нет необходимости в ИЛИ внутри []", на самом деле приведенный выше код теперь разбивается на пробелы, точки с запятой и |

user85421 26.07.2019 23:01

если было 2 пробела? будет ли он разделять пространство также как строку?

user11771804 27.07.2019 00:05

Другие вопросы по теме