0

基本上,这段代码的作用是从用户那里获取一个任意长度的数字,然后以每数字形式加上给定数字上所有数字的总和(例如 1234= 1、2、3、 4.总和=10)。但是,我不能让它对负数起作用。

    Scanner s= new Scanner(System.in);

    String num= s.nextLine();

    char arr[]= new char[num.length()];
    int numsarray[]= new int[num.length()];
    String number[]= new String[num.length()];
    int sum=0;

    for(int i=0; i<num.length();i++)
    {
        arr[i]=num.charAt(i);
        System.out.println(arr[i]);

        number[i]=Character.toString(arr[i]);

        numsarray[i]=Integer.parseInt(number[i]);
    }

    for(int i=0;i<num.length();i++)
    {   
        sum+=numsarray[i];
    }
    System.out.println("Sum:"+sum);
4

1 回答 1

0

有什么理由不先检查数字是否小于 0?然后,您可以使用 abs 使其成为正值并通过您的函数运行它。省去了在 arr[0] 处处理连字符的麻烦。当然你应该有一些布尔来存储标志:-)

于 2013-02-04T14:45:20.307 回答