我需要做的是检查一个字符串,这是我目前所做的
System.out.print("Please enter a string of 1's and 0s :");
numLine = input.next();
if (numLine.matches("^101$")) {
System.out.print("A is true");
} else if (numLine.matches("^\\d[01]+101$ ")){
System.out.print("B is true");
} else {
System.out.println("no");
}
代码的第一部分 ^101$ 工作并打印出 A is true 对于 B,我想做的是只接受 1 和 0,如果以 101 结尾则返回 我希望 C 在开始时执行 101 并接受尽可能多的 1 和 0 和一个在其中任何地方都做 101 的 D,即使它是 111000101000 或其他东西
我的 killer 锏是 ("^101$") 语法,我可以寻求帮助
最佳答案
您不需要 ^
和 $
与 matches
(正如我在评论中所说)。这是我的看法:
B: [01]+101"
C: "101[01]+"
D: [01]*101[01]*"
回想一下,X+
表示 X
一次或多次 而 X*
表示 X
零次或多次。
此外(对于 A),如果您只想“匹配”"101"
,您可能需要考虑简单地使用 equals
相反,即 numLine.equals("101")
。
关于java - 正则表达式帮助在字符串中搜索匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13735996/