我正在阅读 SCJP 指南,发现了以下问题,它看起来很简单,对某些人来说可能很容易。但是,我真的很难找到解决方案。
import java.util.regex.*;
class study{
public static void main(String[] args) {
Pattern p = Pattern.compile(args[0]);
Matcher m = p.matcher(args[1]);
boolean b=false;
while(b=m.find()){
System.out.print(m.start()+" "+m.group());
}
}
}
在那个问题中,命令行参数的给出如下
java study "\d*" ab34ef
而且,说输出是什么,我的猜测是334或234,它在那个选项中。但是,答案(在 Windows 上)是01234456。所以,我的第一个问题是How ??
现在,人们说,你为什么不尝试。然后,我会说,是的,我做到了。但是,就我而言,我的屏幕上没有任何输出。然后,我试图弄清楚考虑所有类型的输入及其值。
在上面的屏幕截图中,当我包含System.out.print(args[0]+" "+args[1]);
在 main 方法中时,显示了第二个输出。
甚至,我把命令行改成了这个
java study "\\d*" ab34ef
然后,我也没有得到任何输出。所以,任何人都可以解释这一切。
输出==
java study "\d*" ab34ef
No output
java study "\\d*" ab34ef
No output
然后我System.out.print(args[0]+" "+args[1]);
在 main 方法中添加。
java study "\d*" ab34ef
\Document and Setting ab34ef
java study "\\d*" ab34ef
\\d* ab34ef
注意:没有输出意味着它没有显示任何内容。