如何在读取文件时返回正数和负数

Ada*_*min 0 java regex

我正在编写一个逐行读取文件的代码,只返回以下行,例如:

int int0 =( - 953);
int int1 =(-411);
int int2 = 5471;
int int3 = 823;

之后,我想只返回正面和负面的数字.为此,我写了以下内容:

String str = line.replaceAll("\\D+","");
System.out.println(str);
Run Code Online (Sandbox Code Playgroud)

运行此代码的结果是:

0953
1411
25471
3823

我寻求的输出是:

-953
-411
5471
823

我怎样才能做到这一点?

khe*_*ood 8

如果要捕获一行中的最后一个数字序列(可选地前面带有减号),可以使用捕获组执行此操作,如下所示:

Pattern p = Pattern.compile(".*?(-?\\d+)\\D*$");
String line = "int int0 = (-953);";
Matcher m = p.matcher(line);
if (m.matches()) {
    System.out.println(m.group(1));
}
Run Code Online (Sandbox Code Playgroud)

结果:

-953
Run Code Online (Sandbox Code Playgroud)