gpt4 book ai didi

java - 当 str 是点 ("."时,如何让 Pattern.matches(regex, str) 返回 false ?

转载 作者:行者123 更新时间:2023-12-02 04:57:35 25 4
gpt4 key购买 nike

我想检查一个字符串是否是数学运算符(+、-、*、/)。我使用 matches 方法根据正则表达式检查字符,但在检查仅包含点(“.”)的字符串时它总是返回 true。代码如下:

String dot = ".";
if(dot.matches("[*+-/]"))
System.out.println("BAD");
else
System.out.println("GOOD");

这将打印“BAD”。我知道这可能与“.”有关。正则表达式匹配所有内容,但我不明白为什么这会产生影响。有什么办法让它返回 false 吗?谢谢。

最佳答案

不,您调用 matchesString 不被视为正则表达式。这是按字面意思理解的。

您的情况正在打印 BAD,因为此 [*+-/] 是一个字符类,其中 . 位于 + 之间/。将 - 移至末尾,这样它就不会创建范围 [*+/-]

关于java - 当 str 是点 ("."时,如何让 Pattern.matches(regex, str) 返回 false ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28621519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com