java 提出字符串中的数字并相加

输入一行字符串(少于80个字符),求其中数字的和。

输入数据包含一行字符串,中间存在多于两个数字。

在一行上输出字符串中数字的和,输出完后,不要回车换行。

import java.util.Scanner;

public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String line = scanner.nextLine();
int result = 0;
for (int i = 0; i < line.length(); i++) {
if (Character.isDigit(line.charAt(i))) {
result = result + Integer.parseInt(line.charAt(i) + "");
}
}
System.out.print(result);
}
}

例:输入:123
输出:6
兼容字符串中存在字母的情况:
输入:12ab3
输出:6
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-20
import java.util.Scanner;

public class NumberTest {

public static void main(String[] args) {
System.out.println("输入一个字符串:");
Scanner scanner = new Scanner(System.in);
StringBuffer sb = new StringBuffer();
String line = scanner.nextLine();
char a[] = line.toCharArray();
System.out.println("打印出其中所有的数字:");
int result = 0;
for (int i = 0; i < a.length; i++) {
if (Character.isDigit(a[i])) {
sb.append(a[i]);
result = result + Integer.parseInt(String.valueOf(a[i]));
}
}
System.out.print(sb);
System.out.print("所有数字的和为:" + result);
}
}
第2个回答  2011-09-20
String str = "ab1cd23231";
char c;
int ii = 0,iSum = 0;
for(int i=0;i<str.length();i++){
c = str.charAt(i);
ii = (int)c;
if(ii > 57 || ii < 49)continue;
iSum += Integer.parseInt(c+"");
}
System.out.print("Sum = " + iSum);
第3个回答  2011-09-20
比较每个字符的ASIIC码,在数字范围内就留下,不是跳过,最后相加就完了,很简单

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网