我有一个包含多个数字的字符串,这些数字必须再次处理并替换为同一个字符串。
例如:
假设我有:
my name is anusha, I am a noob in Java having reputation: 3647 haha I am just kidding my actual reputation is 0001
现在假设我想提取 3647 并对其进行乘法、除法或加法运算。让我们除以 3647/100 = 36.47 并用与 0001 相同的字符串中的原始数字替换并替换为 00.01。
结果字符串应该是:
my name is anusha, I am a noob in Java having reputation: 36.47 haha I am just kidding my actual reputation is 00.01
感谢您的帮助。我知道这对很多人来说很愚蠢,但我仍在学习。
我试过:
Pattern intsOnly = Pattern.compile("\\d+");
Matcher makeMatch = intsOnly.matcher("my name is anusha, I am a noob in Java having reputation: 3647 haha I am just kidding my actual reputation is 0001");
makeMatch.find();
String inputInt = makeMatch.group();
System.out.println(inputInt);
但显然它只获取第一个数字,因为我没有使用循环,而且我也不确定如何处理该数字。
最佳答案
试试这个:
final String regex = "\\d+";
String string = "my name is anusha, I am a noob in Java having reputation: 3647 haha I am just kidding my actual reputation is 0001";
NumberFormat formatter = new DecimalFormat("00.00");
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
Float val=new Float(matcher.group(0));
val=val/100;
string=string.replace(matcher.group(0),formatter.format(val));
}
System.out.println(string);
}
输出:
my name is anusha, I am a noob in Java having reputation: 36.47 haha I am just kidding my actual reputation is 00.01
关于java - 匹配字符串之间的多个数字,处理并替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40609095/