首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java正则表达式检查字符串是否包含1个字符(数字)>0

Java正则表达式检查字符串是否包含1个字符(数字)>0
EN

Stack Overflow用户
提问于 2015-06-26 08:41:11
回答 4查看 1.6K关注 0票数 2

假设我有一个字符串,如下所示,我想检查是否至少有一个字符是大于0的数值(检查1个非零元素数)。有没有一种方法可以做到这一点,而不是运行,拆分字符串和进行循环等?我假设有一个正则表达式解决方案,但我不太了解正则表达式。

代码语言:javascript
复制
String x = "maark ran 0000 to the 23 0 1 3 000 0"

^这应该会通过

代码语言:javascript
复制
String x2 = "jeff ran 0 0 0000 00 0 0 times 00 0"

^这应该会失败

我尝试过以下几种方法:

代码语言:javascript
复制
String line = fileScanner.nextLine();
if(!(line.contains("[1-9]+")) 
    <fail case>
else 
    <pass case> 
EN

回答 4

Stack Overflow用户

发布于 2015-06-26 08:46:16

代码语言:javascript
复制
public boolean contains(CharSequence s)

此方法不接受正则表达式,因为需要使用parameter.You:

代码语言:javascript
复制
    // compile your regexp
    Pattern pattern = Pattern.compile("[1-9]+");
    // create matcher using pattern
    Matcher matcher = pattern.matcher(line);
    // get result
    if (matcher.find()) {
        // detailed information
        System.out.println("I found the text '"+matcher.group()+"' starting at index "+matcher.start()+" and ending at index "+ matcher.end()+".");
        // and do something
    } else {
        System.out.println("I found nothing!");
    }

}

票数 3
EN

Stack Overflow用户

发布于 2015-06-26 08:46:35

使用Matcher classfind()。无论字符串是否包含regex匹配,它都会返回truefalse

代码语言:javascript
复制
Pattern.compile("[1-9]").matcher(string).find();
票数 3
EN

Stack Overflow用户

发布于 2015-06-26 08:54:38

试试这个:

代码语言:javascript
复制
if (string.matches(".*[1-9].*"))
    <pass case>
else 
    <fail case>

非零数字的存在足以保证在输入中存在非零值(在某处)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31063092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档