Разделение строки по разделителям и вывод из массива
Вопрос следующий: на вход подается строка типа: "print ("Hello World"); end.", необходимо ее разделить полностью на слова. На выходе должно получиться: print hello world end. Далее каждое это слово будет сравниваться с другим массивом, который служит "словарем", после чего на экран будет выводиться значение каждого слова. Как реализовать Сплит строки + вывод получившегося массива?
String text;
Scanner textIn = new Scanner(System.in);
text = textIn.nextLine();
String[] arrText = text.split(",|.|;|:|'|");
System.out.println(arrText);
for (int i = 0; i< arrText.length; i++){
System.out.println(arrText[i]);
}
Необходимо для анализатора лексем. Нужно написать своеобразный транслятор программного языка на вымышленный. Как введенный текст разбить по словам? И вывести массив получившихся слов?
Ответы (2 шт):
Можно сначала заменить все знаки типа ,.;:', на какой-то один например запятую, типа так
someText.replace(";",",");
А далее как у вас
String[] arrText = text.split(",");
arrText должен будет содержать все ваши слова
Возможно не эффективно, но работает.
Для добавления новых символов, которые могут быть разделителями, просто добавте их в массив symbols
String text;
Scanner textIn = new Scanner(System.in);
text = textIn.nextLine();
// определяем массив символов являющихся разделителями
char[] symbols = {',',
'.',
':',
';',
'\\',
'(',
')',
'"',
' ',
'\''};
// приводим все разделители к единому формату
for (char symbol : symbols){
text = text.replace(symbol,',');
}
// отладочный вывод, можно убрать
System.out.println(text);
//заменяем все лишние символы, по которым split создат отдельные элементы
while (text.contains(",,")){
text = text.replace(",,",",");
}
// создаем массив слов
String[] arrText = text.split(",");
// выводим массив слов
for (String tempText : arrText){
System.out.println(tempText);
}