Я пытаюсь прочитать программу Java.
Я использую эту строку кода.
String[] words = line.split(" ");
Разделяет ли он также ';' из предыдущего имени переменной?
Например
int x = test;
Как бы разделить, РАЗДЕЛИТЬ это?
int x = test Простите, а что это? Что вы имеете в виду, как разделение строки влияет на целое числоОбратите внимание, что «токенизация» Java-программы — довольно сложный процесс, и его нельзя выполнить с помощью простых вызовов split.
почему он должен разделяться на ; - компьютеры делают то, что вы им порядок, а не то, что вы хотите, чтобы они делали - нигде вы не указали ; (кстати, как написал Грег, это не тривиально, много пробелов необязательны, например, int x=test; (нет пробелы вокруг равны) действителен)
если было 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("[ ;]");
почему обратный слеш?
где ты это взял? ссылку на этот учебник, пожалуйста! 20+ лет, и я никогда не слышал об этом, всегда думал, что это для экранирования специальных символов (например, \\., чтобы получить точку, или \\- внутри []) - нет необходимости в ИЛИ внутри [] - они на самом деле означают любой из перечисленных символов (или в заданном диапазоне - {ИЛИ равно |}, но вне []s)
и, кстати, я предпочитаю официальную документацию: Шаблон - пожалуйста, проверьте это
все еще неправильно, как я уже написал "нет необходимости в ИЛИ внутри []", на самом деле приведенный выше код теперь разбивается на пробелы, точки с запятой и |
если было 2 пробела? будет ли он разделять пространство также как строку?
Попробуйте и посмотрите, получится или нет.