从字符串中提取整数并在Java中添加它们
我想从字符串中提取整数并将其相加 例:从字符串中提取整数并在Java中添加它们,java,arrays,arraylist,Java,Arrays,Arraylist,我想从字符串中提取整数并将其相加 例: 我应该将它的整数输出为825(即34+789+2=825)这里有一种方法,使用String.split: public static void main(String[] args) { String s="ab34yuj789km2"; int total = 0; for(String numString : s.split("[^0-9]+")) { if(!numString.isEmpty()) {
我应该将它的整数输出为825(即34+789+2=825)这里有一种方法,使用String.split:
public static void main(String[] args) {
String s="ab34yuj789km2";
int total = 0;
for(String numString : s.split("[^0-9]+")) {
if(!numString.isEmpty()) {
total += Integer.parseInt(numString);
}
}
// Print the result
System.out.println("Total = " + total);
}
注意模式
“[^0-9]+”
是一个正则表达式。它匹配一个或多个非十进制数字的字符。十进制数还有一种模式\d
。这里有一种方法,使用String.split:
public static void main(String[] args) {
String s="ab34yuj789km2";
int total = 0;
for(String numString : s.split("[^0-9]+")) {
if(!numString.isEmpty()) {
total += Integer.parseInt(numString);
}
}
// Print the result
System.out.println("Total = " + total);
}
注意模式
“[^0-9]+”
是一个正则表达式。它匹配一个或多个非十进制数字的字符。十进制数字还有一种模式\d
。您可以使用正则表达式从字符串中提取数字
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher("ab34yuj789km2");
Integer sum = 0;
while(matcher.find()) {
sum += Integer.parseInt(matcher.group());
}
您可以使用正则表达式从字符串中提取数字
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher("ab34yuj789km2");
Integer sum = 0;
while(matcher.find()) {
sum += Integer.parseInt(matcher.group());
}
使用Java 8:
String str = "ab34yuj789km2";
int sum = Arrays.stream(str.split("\\D+"))
.filter(s -> !s.isEmpty())
.mapToInt(s -> Integer.parseInt(s))
.sum();
使用Java 8:
String str = "ab34yuj789km2";
int sum = Arrays.stream(str.split("\\D+"))
.filter(s -> !s.isEmpty())
.mapToInt(s -> Integer.parseInt(s))
.sum();
javasript
!=java
@Guy我推荐这个答案:在你链接的问题中,这个答案是公认的。@Fildor我也是,但这取决于操作。javasript
!====java
@Guy我推荐这个答案:在你链接的问题中,这个答案是公认的。@Fildor我也是,但这取决于OP。它起作用了@帕特里克听到这个消息很高兴@pb_!请别忘了标记一个被接受的答案,它起作用了@帕特里克听到这个消息很高兴@pb_!请别忘了标记一个被接受的答案。这太有效了