为了账号安全,请及时绑定邮箱和手机立即绑定

Java 对整数求和

Java 对整数求和

繁星淼淼 2022-01-12 16:20:29
我想从用户那里读取一个数字,然后将输入的数字的最后七位相加。做这个的最好方式是什么?这是我的代码,但不幸的是它不起作用:class ersteAufgabe {  public static void main (String[] args)  {              Scanner s = new Scanner(System.in);              double [] a = new double[10];              for (int i = 0;i<10;i++)              {                  a[i]=s.nextInt();                 }              s.close();              System.out.println(a[0]);  }}我只想读取一个数字并将其用作数组。只是现在他希望我有 10 个输入。
查看完整描述

2 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

public static int lastDigitsSum(int total) {

    try (Scanner scan = new Scanner(System.in)) {

        String str = scan.next();

        int count = 0;


        for (int i = str.length() - 1, j = 0; i >= 0 && j < total; i--, j++) {

            if (Character.isDigit(str.charAt(i)))

                count += str.charAt(i) - '0';

            else

                throw new RuntimeException("Input is not a number: " + str);

        }


        return count;

    }

}


查看完整回答
反对 回复 2022-01-12
?
茅侃侃

TA贡献1842条经验 获得超21个赞

首先,您必须识别输入的值是否为数字并且至少包含 7 位数字。除非您必须输出错误消息。将输入的值转换为字符串并使用类 Character.isDigit(); 检查字符是否为数字。然后,您可以使用 String 类中的一些方法,例如 substring(..)。最后使用错误/有效值进行单元测试,以查看您的代码是否健壮。完成后使用 finally { br.close() } 关闭 BufferedReader 和 Resources。将您的代码推送到方法中并使用实例类 erste-Aufgabe(第一个练习)。当您真正完成时,将 JFrame 用于 GUI 应用程序。


private static final int SUM_LAST_DIGITS = 7;


public void minimalSolution() {

    String enteredValue = "";

    showInfoMessage("Please enter your number with at least " + SUM_LAST_DIGITS + " digits!");

    try (Scanner scan = new Scanner(System.in)) {

        enteredValue = scan.next();

        if (enteredValue.matches("^[0-9]{" + SUM_LAST_DIGITS + ",}$")) {

            showInfoMessage(enteredValue, lastDigitsSum(enteredValue));

        } else {

            showErrorMessage(enteredValue);

        }

    } catch(Exception e) {

        showErrorMessage(e.toString());

    }

}


public int lastDigitsSum(String value) {

    int count = 0;

    for (int i = value.length() - 1, j = 0; i >= 0 && j < SUM_LAST_DIGITS; i--, j++)

        count += value.charAt(i) - '0';

    return count;

}


public void showInfoMessage(String parMessage) {

    System.out.println(parMessage);

}


public void showInfoMessage(String parValue, int parSum) {

    System.out.println("Your entered value: [" + parValue + "]");

    System.out.println("The summed value of the last 7 digits are: [" + parSum + "]");

}


public void showErrorMessage(String parValue) {

    System.err.println("Your entered value: [" + parValue + "] is not a valid number!");

}


查看完整回答
反对 回复 2022-01-12
  • 2 回答
  • 0 关注
  • 131 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信