使用java从字符串中查找第一次出现的Integer的索引

时间:2013-09-03 09:04:37

标签: java regex

我有字符串xxxxy 1/1/2,我需要使用java从字符串中找出第一次出现的Integer的索引。输出将是第一个“1”索引。我需要正则表达式。

5 个答案:

答案 0 :(得分:5)

无需使用正则表达式。将您的String转换为char数组,在其上循环并使用Character#isDigit()

答案 1 :(得分:5)

您不使用正则表达式,但必须使用它:

    String s = "xxxxy 1/1/2";
    Pattern pattern = Pattern.compile("^\\D*(\\d)");
    Matcher matcher = pattern.matcher(s);
    matcher.find();
    System.out.println(matcher.start(1));

输出:6

答案 2 :(得分:2)

int pos = s.replaceFirst("^(\\D+).*$", "$1").length();

保留非数字\\D

答案 3 :(得分:0)

您也可以省略使用此代码的正则表达式,尽管它比干净有效的解决方案更有趣。

for(String b : "abc123cde".split("[a-z]")) {        
    try {
        Integer result = Integer.parseInt(b);
        if(result != null) {
            System.out.println(result);
            break;
        }
    } catch(NumberFormatException ex) {
         //nevermind
    }
}

答案 4 :(得分:0)

您可以使用此函数从字符串中获取索引:

function GetIndex (strValue) {
var notDigRegExp = /^\D+/; 
var digRegExp = /^\d+/;
strValue = strValue.replace(notDigRegExp, "");
var matches = strValue.match(digRegExp);
return matches[0];
};