我正在尝试通过Oracle网站了解如何使用Regex API。
所以在下面的代码中,当我在我的机器上运行时,我只得到没有控制台的第一个输出语句,没有其他任何运行。谁能解释一下发生了什么?
另外,为什么我们会使用控制台而不是Regex扫描仪?
import java.io.Console;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexTestHarness {
public static void main(String[] args){
Console console = System.console();
if (console == null) {
System.err.println("No console.");
System.exit(1);
}
while (true) {
Pattern pattern =
Pattern.compile(console.readLine("%nEnter your regex: "));
Matcher matcher =
pattern.matcher(console.readLine("Enter input string to search: "));
boolean found = false;
while (matcher.find()) {
console.format("I found the text" +
" \"%s\" starting at " +
"index %d and ending at index %d.%n",
matcher.group(),
matcher.start(),
matcher.end());
found = true;
}
if(!found){
console.format("No match found.%n");
}
}
}
}
答案 0 :(得分:0)
我猜你是在Eclipse中运行它。 Eclipse环境不提供控制台。我建议您从终端手动运行程序或使用其他内容,例如BufferedReader
。