【问题标题】:Adding user-inputted values together and printing them将用户输入的值相加并打印
【发布时间】:2018-10-10 11:06:05
【问题描述】:

我需要将此程序的用户输入字符串的值添加到一起作为 Java 项目。我尝试过解析,但它似乎不起作用,我想不出许多其他简单的方法来查找字符串值的总和并打印它们。

import java.util.Scanner;

public class Lab4 {

    public static void main(String[] args) {

        int length;
        int counter;
        int sum = 0;

        Scanner input = new Scanner(System.in);

        System.out.println("How many numbers will you enter"); // input prompt
        length = input.nextInt();

        String[] number = new String[length];

        for (counter = 0; counter < length; counter++) {
            System.out.print("Number " + (counter + 1) + ": ");
            number[counter] = input.next();
        }

        input.close();

        System.out.print("The summation of ");
        for (counter = 0; counter < length - 1; counter++) {
            System.out.print(number[counter] + ", ");
        }
        System.out.print("and " + number[counter] + " is: ");

        System.out.print(""); // How would I go about printing a sum ofthe values of the string?

    }
}

【问题讨论】:

    标签: java arrays string sum


    【解决方案1】:

    你可以写以下逻辑:

    for(int i=0;i<number.length;i++){
        try{
            sum+=Integer.parseInt(number[i]);
        }
        catch( Exception e ) {
    
        }
    }
    System.out.println("The sum is:"+sum);
    

    【讨论】:

    • 谢谢!这行得通,但你介意解释一下“catch”位是如何工作的吗?之前有人告诉我使用 parseInt 来获取字符串的值,但之前的尝试导致错误提示“方法”未定义
    • 你能把这些错误显示出来吗,顺便说一句,上面的方式对我来说很好。
    • @JordanSullivanIII parseInt(String s) 如果字符串不包含可解析的整数,则抛出 NumberFormatException 方法。因此,添加了代码 catch 子句来处理该异常。您可以通过异常处理并参考 java doc:docs.oracle.com/javase/7/docs/api/java/lang/…
    【解决方案2】:

    使用streams(Java 8 中引入)你可以得到一行代码:

    int sum = Arrays.stream(number).mapToInt(Integer::valueOf).sum();
    

    【讨论】:

    • 输入此行后,我收到错误:“无法解析数组”、“无法将数字解析为变量”和“仅在源级别 1.8 及更高版本中允许方法引用。”
    • 首先您需要导入类数组:import java.util.Arrays; 如果您使用的是 Eclipse,您还需要将项目的“编译器合规性级别”设置为至少“1.8”。您可以在项目属性/Java 编译器中找到它。
    【解决方案3】:

    在你的 for 循环中包含:sum += Integer.parseInt(number[counter]),最后打印出来

    for(counter = 0; counter < length-1; counter++){
      System.out.print(number[counter] + ", ");
      sum += Integer.parseInt(number[counter]);
     } 
    


    System.out.print(sum); // How would I go about printing a sum ofthe values of the string?
    

    【讨论】:

    • Interesting.. 这与下面的代码非常相似,但是在输入它时我得到一个语法错误和另一个错误,说 parseInt 无法解析或不是一个字段。有什么想法吗?
    • 试一下现在我的代码中有不必要的.
    猜你喜欢
    • 2017-02-22
    • 1970-01-01
    • 1970-01-01
    • 2018-02-26
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    • 1970-01-01
    • 2014-01-15
    相关资源
    最近更新 更多