Java 检查字符串是否包含正则表达式匹配项
我要检查的是,是否有一个数字后跟空格和另一个数字,Java 检查字符串是否包含正则表达式匹配项,java,regex,Java,Regex,我要检查的是,是否有一个数字后跟空格和另一个数字,字符串中的任何位置,中间没有任何“,” 目前我正在这样做: Pattern pattern = Pattern.compile("[0-9][\" \"]+[0-9]"); Matcher matcher = pattern.matcher(input); if(matcher.find()) return false; 而且效果很好。但我想知道是否还有其他更简单的方法来实现这一点?因为这是一项作业,我不会写出代码,但另一种解决方案是: 拆分
字符串中的任何位置,中间没有任何“,”
目前我正在这样做:
Pattern pattern = Pattern.compile("[0-9][\" \"]+[0-9]");
Matcher matcher = pattern.matcher(input);
if(matcher.find()) return false;
而且效果很好。但我想知道是否还有其他更简单的方法来实现这一点?因为这是一项作业,我不会写出代码,但另一种解决方案是:
- 拆分
,
标记上的字符串(使用string.Split()
)
- 对于生成的拆分数组的每个成员:
- 修剪成员的前导和尾随空格
- 如果修剪后的成员是整数(我将让您了解如何确定):
- 它不符合您指定的标准
- 其他:
- 令牌可能满足您的条件(包含多个整数和空格,但不包含逗号)。有几种方法可以确定这一点:在
“
”上拆分;在循环时使用,或者其他方法。我会让您弄清楚
您的解决方案足够好,您可以通过以下积极方式尝试
Pattern pattern = Pattern.compile("^[1-9](,[1-9])*$");
Matcher matcher = pattern.matcher(input);
if(matcher.matches()) return true;
不,在这种情况下,split[0]
将是12
(空间将被保留),这当然不是整数。啊,我想我只是想检查每个令牌是否是整数,但您正在寻找两个或多个整数没有正确分开的情况。我更新了我的答案,这应该足以让您开始。