我已经在这方面寻求帮助几个小时了,但找不到任何帮助,或者我只是找不到合适的地方。
我试图用Java创建一个简单的程序,它将三个正整数作为命令行参数,如果其中任何一个大于或等于其他两个整数的和,则输出TRUE,否则输出FALSE。
public class Triangle {
public static void main(String[] args){
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int c = Integer.parseInt(args[2]);
boolean isTriangle;
isTriangle = (a + b >= c);
isTriangle = (b + c >= a);
isTriangle = (a + c >= b);
System.out.println(isTriangle);
}
}
希望他们中的一些人能给我一个答案,或者给我一个正确的方向,这样我就能把事情做好。
既然您正在学习Java,那么开始尝试它的一些面向对象方面可能也是一个好主意。您可以做如下事情:
public class Triangle{
private int side1;
private int side2;
private int side3;
public Triangle(int side1, int side2, int side3){
this.side1=side1;
this.side2=side2;
this.side3=side3;
}
public boolean isValid(){
return side1>0 && side2>0 && side3>0;
}
public boolean isTriangle(){
return (side1+side2<=side3)
|| (side1+side3<=side2)
|| (side2+side3<=side1);
}
public static void main(String[] args){
try{
side1=Integer.parseInt(args[0]);
side1=Integer.parseInt(args[0]);
side1=Integer.parseInt(args[0]);
Triangle t=new Triangle(side1,side2,side3);
if(t.isValid() && t.isTriangle())
System.out.println("Yes this makes a valid triangle");
else System.out.println("Sorry this is not a valid triangle");
}
catch(NumberFormatException e){
System.out.println("Please make sure all arguments are numeric.");
}
}
}
为了更进一步,您还可以扩展这个类来创建RightTriangle类。因为三角形边的字段是私有的,所以您需要在Triangle类中添加getter方法(public int getSide1(){return side1;}),对于每一侧。
public class RightTriangle extends Triangle{
public RightTriangle(int side1, int side2, int side3){
super(side1,side2,side3);
}
@Override
public boolean isValid(){
int a=getSide1();
int b=getSide2();
int c=getSide3();
return super.isValid()
&& ((a*a + b*b = c*c)
|| (a*a + c*c = b*b)
|| (b*b + c*c = a*a));
}
public static void main(String[] args){
//this is basically the same as the triangle class only now
//instantiate the RightTriangle class
RightTriangle rt=new RightTriangle(side1,side2,side3);
if(rt.isTriangle() && rt.isValid())
System.out.println("Yes this is a valid right triangle");
else System.out.println("sorry, this is not a right triangle");
}
}
我只想单独测试每个整数,因为其中只有3个。
public static boolean test(int a, int b, int c) {
return (a >= b + c || b >= a + c || c >= a + b);
}
至于IO,您可以使用Scanner
类。
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
记住:<代码>导入java。util。扫描仪。
编辑:我刚刚看到您希望将整数作为命令行参数,在这种情况下,您只需使用Integer。parseInt(..)将字符串参数(作为主方法参数的字符串[]的组件)转换为整数。
public class Triangle {
public static void main(String[] args){
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int c = Integer.parseInt(args[2]);
boolean isTriangle;
isTriangle = (a + b >= c) || (b + c >= a) || (a + c >= b);
System.out.println(isTriangle);
}
}
我正在尝试编写一个购物清单程序,用户在购物清单上输入相应价格的项目。我对购物清单上的商品使用了一个字符串数组,对价格使用了一个双数组。最后,程序应该打印出最贵的项目和最便宜的项目。 为此,我制作了价格数组的副本。然后使用<code>数组对原始价格数组进行排序。sort(),因此它按升序重新排列。之后,我使用for循环将重复的价格数组与已排序的原始数组进行比较,当重复数组中的值与已排序数组中的最低/
我试图创建一个表达式验证方法,以确保传递到函数中的帐号是否有效。如果是,则返回true,如果为false,则返回false。 但是我正在经历一个错误: 我已经看了一些堆栈溢出问题,但我似乎无法弄清楚我在代码中做错了什么。 代码: 我从https://www.freeformatter.com/java-regex-tester.html#ad-output
问题内容: 我正在尝试编写代码以比较两个数组。在第一个数组中,我输入了自己的数字,但是在第二个数组中,输入了输入文件中的数字。该数组的大小由文件中的第一个数字确定,而第一个数组的大小始终为10。两个数组以及数字的长度必须相同。 我的代码如下: 问题答案:
问题内容: 在Java中整数比较是棘手的,因为和表现不同。我明白了。 但是,如本示例程序所示, (第4行)的 行为不同于 (第3行) 。为什么是这样?? 结果 问题答案: 从JLS 如果装箱的值p为true,false,字节或\ u0000到\ u007f范围内的char或-128到127(含)之间的整数或短数,则令r1和r2为p的任何两次拳击转换。r1 == r2总是这样。 理想情况下,将给定的
我有一个充满整数的列表: 现在我想将最高分数与每个分数进行比较,看看哪个分数最高。直觉上,我试着这样做: 然而 所有人都告诉我错误: Compariable和int操作数类型不兼容 然而,这似乎是可行的: 那怎么可能呢? 为什么Java允许将int设置为集合。max(集合),但不允许将int与集合进行比较。最大值(集合)?