【问题标题】:Converting a string to a 10-digit integer in Java在 Java 中将字符串转换为 10 位整数
【发布时间】:2013-02-06 14:31:10
【问题描述】:

我有这个任务应该检查三角形是否是等腰、不等边、等边、直角。

我只需要使用小于或等于 2,147,483,647(或 2^31-1)的整数。我必须使用 Linux 及其终端输入值并获得结果。

输入 1 到 9 位整数时输出没有问题,但是如果我想用 2^31-1 等 10 位整数进行测试,那么我得到的结果不是合适...

这是我的代码片段:

public static void main (String[] args)
{
    int a,b,c;
    a = Integer.parseInt(args[0]);
    b = Integer.parseInt(args[1]);
    c = Integer.parseInt(args[2]);
}

谁能建议我如何处理这个问题?

【问题讨论】:

  • 你的输入输出是什么?
  • 你考虑很久了吗?如果输入 > 2^31,打印错误信息?
  • 我认为 long 是前进的道路,只是为了避免整数溢出
  • 他只能使用整数!
  • 是整数造成的问题还是后面的计算步骤?我怀疑这是第二种情况

标签: java string integer digit


【解决方案1】:

我不知道.. 但我尝试使用 BASH + JAVA 运行您的代码,但我没有看到输出有任何问题。

这是截图。


现在来解决真正的问题(这必须体现在情感层面),即某个三角形实际上是等边三角形、不等边三角形、等腰三角形还是直角三角形。

要解决一个问题,写下问题所涉及的功能逻辑

  1. 等边三角形:- 三边相等的三角形
  2. 等腰三角形:- 三边中的两条相等的三角形
  3. 不等边三角形:- 没有边相等的三角形

现在想想约束

  1. 您只能使用整数
  2. 作为参数发送的输入

分析完毕,现在开始编写程序

public class BufferProblem{
   public static void main(String[] args){ 
     int a, b, c;
     a = Integer.parseInt(args[0]);
     b = Integer.parseInt(args[1]);
     c = Integer.parseInt(args[2]);

     if ((a == b) && (b == c)) { System.out.println("It is an equilateral triangle"); }
     else if (a == b || b == c || c == a) { System.out.println("It is an isosceles triangle"); }
     else if ((a != b) && (b != c) && (c != a)) { System.out.println("It is a scalene triangle");}

   }
}

【讨论】:

  • 我已经在我的代码中实现了类似的检查。顺便说一句,我必须使用 Linux 及其终端。好的,有没有办法像在 C 中那样对我的程序施加限制 - 定义 = 2^31-1。如果是这样,如何在Java中做到这一点(我是新手)?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-06
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多