编写一个程序,用以判断一个五位整数n各个数字的奇偶性,并求出他们的和
例如:13567   
输出为:
奇数有:1357
偶数有:6
和:22import java.util.*;
public class Num8 
{
public static void main(String[] args) 
{
Scanner in = new Scanner(System.in);
String s = in.nextLine();

char[] a = s.toCharArray();
String p = "";
String q = "";
int sum = 0;

for(int i = 0;i<a.length;i++)
{
if(a[i]%2 == 0)
{
p += a[i]+" ";
}
else if(a[i]%2 == 1)
{
q += a[i]+" ";
}
}

for(int i = 0;i<a.length;i++)
{   
sum += a[i];
}
System.out.println("偶数有:"+p);
System.out.println("奇数有:"+q);
System.out.println("和为:"+sum);
}
}
这里的sum为什么输出的是ASCII码的和?怎么才能实现数组元素的和呢?

解决方案 »

  1.   

    parseInt
    public static int parseInt(String s)
                        throws NumberFormatException将字符串参数作为有符号的十进制整数进行分析。除了第一个字符可以是用来表示负值的 ASCII 减号 '-' ('\u002D') 外,字符串中的字符都必须是十进制数字。返回得到的整数值,就好像将该参数和基数 10 作为参数赋予 parseInt(java.lang.String, int) 方法一样。 参数:
    s - 包含要分析的 int 表示形式的 String。 
    返回:
    用十进制参数表示的整数值。 
    抛出: 
    NumberFormatException - 如果字符串不包含可分析的整数。
    ——————————————————————————————
    这方法在java.lang.Integer里 具体我就不写了
    当你System.in传进来以后用上面方法处理下 直接转成数字。再处理
    或者 一个个字母提出来在转成数字都行
      

  2.   

    你这个数据类型是char啊 前面奇偶判断如果正确的话也是运气好 ^__^先用Character.getNumericValue(); 转换成int类型
    比如: 
    char ch = '5';
    int i = Character.getNumericValue(ch);
      

  3.   

    看看ASCII码和0-9之间的关系不是0-9:45-54??具体是什么就不知道了,你可以在这条程序sum += a[i];====〉sum += (a[i] - 45);得出结果不就是你要的了