我收到一个包含数字的字符串,
例如: - pointer
这是分隔每个数字并将它们加在一起的最佳方法吗?
示例总计123312351863
答案 0 :(得分:5)
我不会给你确切答案。
- 使用
Integer.parseInt()
或Long.parseLong()
将整个String解析为整数。基于适当的尺寸。- 您可以使用以下2个运算符添加每个数字 - >
/
和%
。- 您还需要一个
醇>while
循环。
注意:对于非常大的数字或者数字以0
开头,此方法会失败。你确实可以使用charAt()
+其他一些字符串方法来实现。
答案 1 :(得分:3)
public class Simple {
public static void main(String `args`[]){
String str = "123456789";
Integer total = 0;
for (Character eachNumber : str.toCharArray()) {
total += Integer.parseInt(eachNumber.toString());
}
System.out.println(total);
}
}
答案 2 :(得分:1)
Java 8中的一个简短方法:
String s = "123312351863";
int sum = s.chars().map(Character::getNumericValue).sum();
答案 3 :(得分:0)
试试这样:
int res = 0;
String s= "123312351863";
for (int i = 0; i < s.length(); i++)
{
String str= ""+s.charAt(i);
int b = Integer.parseInt(str);
res = res + b;
}
System.out.println(res);
答案 4 :(得分:0)
您可以先使用String.split("")
将字符串拆分为单个字符(注意它会在java8版本之前的开头给出一个空字符串)
然后,迭代String[]
,parse each number to int
,并将它们相加
答案 5 :(得分:0)
您可以将字符串拆分为&#34;&#34; ,然后将每个字符串转换为Integer并对数字求和。例如。在java 8中
System.out.println(Stream.of(s).map(x -> x.split("")).flatMap(Arrays::stream).mapToInt(Integer::parseInt).sum());
输出
38
答案 6 :(得分:0)
您也可以
loop
和chatAt()
迭代字符串的字符。Character.getNumericValue(yourChar)
将字符转换为int值。答案 7 :(得分:-1)
我会尝试如下
public static void main(String args[])
{
String x="123312351863";
String r[]=x.split("");int sum=0;
for(int i=1;i<=x.length();i++)
{
sum+=Integer.parseInt(r[i]);
}
System.out.println(sum);
}