从Java中获取负数int,也包含字母

时间:2013-05-08 11:42:31

标签: java regex

我找到了几乎符合我需要的东西here

Integer.parseInt(s.replaceAll("[\\D]", ""))

但是我不知道如何修改它以获得负整数。示例字符串是:

"some\\-2c.st"

我需要提取“-2”

3 个答案:

答案 0 :(得分:4)

我会反过来做,寻找整数而不是剥离其余部分:

String str = "some\\-2c.st";

Pattern pattern = Pattern.compile("-?[0-9]+");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
    int value = Integer.parseInt(matcher.group());
    System.out.println(value);
}

答案 1 :(得分:1)

Integer.parseInt(s.replaceAll("[^\\d-]", ""))

答案 2 :(得分:1)

您可以移除您不想要的所有内容,也可以提取您想要的内容。 看来,后者更合适,你可以使用像(-?\d+)这样的正则表达式。