我正在学习Java OCP证书。我正在参加模拟考试。
示例程序:
public class Quetico {
public static void main(String[] args) {
Pattern p = Pattern.compile(args[0]);
Matcher m = p.matcher(args[1]);
while (m.find()) {
System.out.println(m.start() + " ");
}
System.out.println("");
}
}OCA/OCP Jave SE 7研究指南的作者认为执行:
java Quetico "\B" "^23 *$76 bc"将产生输出
0 2 4 8但是,当我从Eclipse或在外部源上测试它运行代码时,
0 2 4 5 7 10我是在这里漏掉了什么,还是学习指南的作者弄错了?
我正在增加以下书中的实际问题,以供参考。
书中的问题

回答

发布于 2015-07-25 19:48:06
这本书是正确的(当用通常的shell在Unix机器上执行时)。它是shell行为和java的结合(在我看来,这是Java课程之外的主题)。记住,shell中的"$“表示替换。因此,如果您将该程序称为:
java Quetico "\B" "^23 *$76 bc"在regex上匹配的字符串是(您可以为args1添加println来验证它):
^23 *6 bc书"0 2 4 8“给出的结果。
您可以将结果与以下内容进行比较:
java Quetico "\B" '^23 *$76 bc'禁用外壳替换。
https://stackoverflow.com/questions/31629761
复制相似问题