java program:从用户字符串输入中添加整数

时间:2014-11-03 04:03:05

标签: java methods integer

对于这个程序,我将输入作为一个字符串,格式如下:一个名称,后跟以空格分隔的整数。系列中可以有一个或多个整数。它的输出最终是该系列的名称及其总和。以下是输出应该是什么的示例:

Series? seriesname 1 3 5 7 11
sum(seriesname) = 27

我的代码出现问题,它一直存在问题(例外):

int number = Integer.parseInt(series.substring(start, space));

我已经移动了很多,但这就是我现在所拥有的:

import java.util.Scanner;

public class NamePlusAddingInts {
    public static String series;
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.print("Series? ");

        series = scan.nextLine();
        String name = series.substring(0, series.indexOf(' '));

        System.out.print("Sum(" + name + ") = " + number);
    }
    public static int adding() {
        int space = series.indexOf(' ');

        while (space != -1) {
            int start = space + 1;
            int number = Integer.parseInt(series.substring(start, space));

            number = number + number;
            space++;
        }
        return number;
    }
}

2 个答案:

答案 0 :(得分:1)

你是在思考它。你感兴趣的东西之间有明确的分隔符,你可以在空格处分割字符串,将第一个元素作为名称并使代码更清晰,考虑一下:

    String numbers = "name 5 20 26 4 2 13";
    String[] splitNumbers = numbers.split(" ");

    int sum =0;
    String name = splitNumbers[0]

    for(int i = 1; i < splitNumbers.length ; i++){
        sum += Integer.parseInt(splitNumbers[i]);
    }

现在只需将硬编码数字值更改为用户输入及其完成。如果您害怕用户输入数字以外的其他内容,您可以在try-catch中将其包围以检查格式异常。

答案 1 :(得分:0)

add()方法的更好实现是将长字符串分解为字符串数组。您可以调用String方法split(" ")将字符串转换为字符串数组。

public static int adding(String input) {
    int sum = 0;
    String[] array = input.split(" ");

    //starts from 1 because array[0] is the name of the series
    for (int i = 1; i < array.length; i++) {
        sum += Integer.parseInt(array[i]);
    }
    return sum;
}

希望这有帮助!