我想编写一个程序,读取一行输入文本,打破将其翻译成单词。
(解决方案) 单词应该每行输出一个。一个单词被定义为一系列字母。
输入中不是字母的任何字符都应该被丢弃。
例如,如果用户输入以下行:
He said, "That’s not a good idea."
然后程序的输出应为:
He
said
That
‘s
not
a
good
idea
答案 0 :(得分:2)
只需使用正则表达式
Pattern pattern = Pattern.compile("[\\w'’]+");
Matcher matcher = pattern.matcher("He said, \"That’s not a good idea.\"");
while (matcher.find())
System.out.println(matcher.group());
答案 1 :(得分:0)
试试这个:
public class Main {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in); // user input
String line = stdIn.nextLine(); // read line
String[] words = line.split("[^a-zA-Z]+"); // split by all non-alphabetic characters (a regex)
for (String word : words) { // iterate through the words
System.out.println(word); // print word with a newline
}
}
}
它不会在令牌's
中包含撇号,但我不知道你为什么要包括它。毕竟,这不是一封信,我读了你的第一句粗话。我希望这些评论有助于解释它是如何工作的。将有一个尾随空行,但如果你真的需要,那么你应该很容易修复。