如何将字符串中的整数相加?JAVA
我一直在寻找一种在字符串中添加整数的方法,并发现了一些不同的回答,如使用:如何将字符串中的整数相加?JAVA,java,numeric,Java,Numeric,我一直在寻找一种在字符串中添加整数的方法,并发现了一些不同的回答,如使用: String line = "123456789"; int total = 0; for (int i = 0;i<line.length();i++) { total += Character.getNumericValue(line.charAt(i)); } String line=“123456789”; int-total=0; 对于(int i=0;i您可以将字符串转换为IntStream(
String line = "123456789";
int total = 0;
for (int i = 0;i<line.length();i++) {
total += Character.getNumericValue(line.charAt(i));
}
String line=“123456789”;
int-total=0;
对于(int i=0;i您可以将字符串转换为IntStream
(这将为每个字符提供ascii码),然后使用Character::getNumericValue
将ascii码转换为相应的数值:
"123".chars().map(Character::getNumericValue).sum()
如问题注释中所述,这虽然较短,但并不是最好的方法。在实际应用中,我会使用扩展版本以提高可读性。您可以将字符串转换为IntStream
(这将为每个字符提供ascii码)然后使用字符::getNumericValue
将ascii码转换为相应的数值:
"123".chars().map(Character::getNumericValue).sum()
正如问题注释中所述,这虽然简短,但不是最好的方法。在实际应用中,我会使用扩展版本以提高可读性。如果您愿意,可以尝试以下方法:
int x = Integer.parseInt(line)
while (x > 0) {
sum = sum + x % 10;
x = x / 10;
}
或者与regex类似:
Pattern p = Pattern.compile("\\d"); //single digit
Matcher m = p.matcher(line);
while (m.find()) {
sum = sum + Integer.parseInt(m.group()); // convert in int every digit
}
如果您愿意,可以尝试以下方法:
int x = Integer.parseInt(line)
while (x > 0) {
sum = sum + x % 10;
x = x / 10;
}
或者与regex类似:
Pattern p = Pattern.compile("\\d"); //single digit
Matcher m = p.matcher(line);
while (m.find()) {
sum = sum + Integer.parseInt(m.group()); // convert in int every digit
}
如果不想循环字符串,请尝试此操作。在这种情况下,您必须使用循环,但在某些情况下,循环将“更短”,即,如果字符串看起来像“0000000 23”,则循环将只运行2次,而不是运行9次
String s = "123456789";
int x = Integer.parseInt(s);
int sum = 0,val;
while(x>0)
{
val = x%10;
sum = sum + val;
x = x/10;
}
如果不想循环字符串,请尝试此操作。在这种情况下,您必须使用循环,但在某些情况下,循环将“更短”,即,如果字符串看起来像“0000000 23”,则循环将只运行2次,而不是运行9次
String s = "123456789";
int x = Integer.parseInt(s);
int sum = 0,val;
while(x>0)
{
val = x%10;
sum = sum + val;
x = x/10;
}
你所说的“只会”是什么意思?编写代码总是有一种较短的方法,但你应该真正退一步,问问自己这样做是否有利于代码的可读性选项1是使用循环从每个字符中获取值并将其相加。选项2是int total=45
“只会”因此,它会自动将0-9之间的每个整数的值相加。你说的自动是什么意思?你说它只是什么意思?编写代码总是有一种较短的方法,但你应该真正后退一步,问问自己,如果执行此操作,代码的可读性是否会受益。选项1是使用循环从每个字符中获取值选项2是int-total=45
“它只会”这样它会自动将0-9之间的每个整数的值相加。你说的自动相加是什么意思?