【问题标题】:Java: Adding 2 numbers with BufferReader, not working on CS AcademyJava:使用 BufferReader 添加 2 个数字,不适用于 CS Academy
【发布时间】:2017-09-28 01:11:54
【问题描述】:

我正在尝试将 2 个整数相加并打印出结果,用于CS Academy 上的任务。我正在使用 BufferReader 来读取整数结果,并使用增强型 for 循环将值放入 A & B;但是,它只是提供了一个空白结果。如何修复增强型 for 循环和阅读器? https://csacademy.com/contest/archive/task/addition/

--

任务: 给定两个整数值 A 和 B,计算并输出它们的总和。

标准输入 第一行包含两个整数 A 和 B。

标准输出 输出一个表示 A 和 B 之和的数字。


  import java.util.*;
  import java.lang.*;
  import java.io.*;

  class Main {
        public static void main (String[] args) throws java.lang.Exception {
          int A, B;
          A =0; B =0;

       BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Enter Integer:");
            int i = Integer.parseInt(br.readLine());

        int[] values = new int[i];
            for(int value: values ) {
            A=value[0];
            B=value[1];
            }
        System.out.println(A + B );

        }
    }

【问题讨论】:

  • 不清楚你的目标是什么。你能描述一个样本输入和一个预期的输出吗?在此之前对您的问题投反对票。
  • 输入:2 3. 预期输出:5
  • 没有“用BufferedReader 加2个数字”这样的东西。试着正确地描述你的。它还会迫使你清楚地考虑它。

标签: java for-loop bufferedreader


【解决方案1】:

您的程序不起作用,因为首先您只读取一个数字而不是两个。其次,您将添加两个初始化为 0 但从未获得任何其他值的数字。您希望用户输入由空格分隔的两个数字。因此,您需要将输入字符串(“10 15”)用空格分隔,然后将每个单独的字符串视为一个数字,然后将其相加。

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter Integer:");
String[] str = br.readLine().split(" ", 2);
System.out.println("Sum is " + (Integer.parseInt(str[0]) + Integer.parseInt(str[1])));
br.close();

【讨论】:

  • 您的方法适用于简单的数字,但是当您输入:366 789 时。它不起作用,也不能很好地解析负数。
  • @ComputerGuy123,这是不对的。它适用于您描述的两种情况。只需运行我给出的代码 sn-p。
  • 我收到以下错误:线程“main”中的异常 java.lang.NumberFormatException:对于输入字符串:java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 处的 java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 中的“883198518” .lang.Integer.parseInt(Integer.java:580) 在 java.lang.Integer.parseInt(Integer.java:615) 在 Main.main(Main.java:41)
  • 您输入的“883198518”仅包含一个数字。这就是为什么你会得到那个错误。您的输入应包含两个用空格分隔的数字。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-17
  • 2014-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多