基本的Java扫描

时间:2013-08-30 22:17:46

标签: java string parsing

所以,我正在尝试接收用户输入并将字符串中的每个数字相加并打印出来以及计算产品。我想出了如何接受每个数字,但我遇到了可变长度的问题。这是它目前打印的内容:

Please enter '.' when you want to terminate
1 2 3
Numbers: 1 2 3
Sum: 13  Product: 12

这是扫描后计算用户输入的方法

public void set(String userInput)// method set returns void
{
    num=0;// reset each variable so new input can be passed
    sum=0;
    product=1;
    String empty="";

    for(int index=0; index<userInput.length(); index++)// goes through each character in string
    {

        if(Character.isDigit(userInput.charAt(index))==true)// checks if character in the string is a digit
        { 
            empty+=userInput.charAt(index);
        }
        else
        {
            //if it is then parse that character into an integer and assign it to num
            num=Integer.parseInt(empty);

            // adds each digit to sum
            sum+=num;
            product*=num;
            // multiplies each digit by product and stores in "product"
        }
    } 
}

2 个答案:

答案 0 :(得分:1)

看起来您需要在使用后清除,并确保在最后一位数后继续处理。你得到1 + 12和1 * 12并且错过了3。

答案 1 :(得分:0)

我建议你从头开始用空格分隔数字:

用户输入为:1 2 3 10 20

然后你就可以得到一个数组

String[] numbers = userInput.trim().split(" ");

你必须调整你的代码。