我想动态分配变量,但我不知道如何做到这一点。
我的计划应该做什么:
“编写程序让用户输入三个边长,并确定该图是否为三角形。”
这是我到目前为止所做的:
package triangle;
import javax.swing.JOptionPane;
public class Triangle {
public static void main(String[] args) {
String x = JOptionPane.showInputDialog("Please enter the side lengths of a triangle with each side \nseparated with a ',' and without spaces. (eg. 1,2,3)");
x += ",";
int y = -1, a = 0;
double z;
for(int i = 0; i < x.length(); i++)
{
if(x.charAt(i) == ',')
{
z = Double.parseDouble(x.substring((y + 1), i));
y = i;
a += z;
}
}
}
}
我喜欢做的是在if语句中使用它:
int a++;
z(a) = Double.parseDouble(x.substring((y + 1), i));
但是我发现这不起作用,我需要某种数组。可悲的是,我的在线课程尚未启动数组,而且在我自己的学习中我还没有掌握它们。
我想制作3个变量(z1,z2,z3),并在if语句中为每个变量分配一个整数。
编辑: 这里有一些修改后的代码,现在可以按我想要的方式工作。希望这对未来的其他人有所帮助!
package triangle;
import javax.swing.JOptionPane;
public class Triangle {
public static void main(String[] args) {
String x = JOptionPane.showInputDialog("Please enter the side lengths of a triangle with each side \nseparated with a ',' and without spaces. (eg. 1,2,3)");
x += ",";
int y = -1, a = 0;
Double[] z = new Double[3];
for(int i = 0; i < x.length(); i++)
{
if(x.charAt(i) == ',')
{
z[a] = Double.parseDouble(x.substring((y + 1), i));
y = i;
a++;
}
}
//Some test code to see if it was working
System.out.println(z[0]);
System.out.println(z[1]);
System.out.println(z[2]);
}
}
答案 0 :(得分:1)
您不需要使用数组,特别是您尚未介绍它们。您可以简单地使用Scanner
类,并执行与
Scanner in = new Scanner(System.in); // this will read from the standard system input
System.out.println("Please enter three lengths of sides: ");
int a = in.nextInt();
int b = in.nextInt();
int c = in.nextInt();
并写一些逻辑(我猜这是你的作业的重点),检查这个数字是否是一个三角形。
如果您想使用数组,可以通过执行以下操作声明:
int[] sidesLenghtsArray = new int[3];
然后您可以简单地引用您的数组元素,而不是引用三个不同的int
变量:
int[0] = in.nextInt();
int[1] = in.nextInt();
int[2] = in.nextInt();
请记住 - 括号中的数字是数组所具有的元素数,但是引用这些元素,从0开始计数。这就是为什么我们从int[0]
开始(第一个元素)并结束int[2]
(第3个元素)。
答案 1 :(得分:0)
Java不支持像
这样的元组赋值def (a,b,c) = "1,2,3".split(",")
可以使用以下代码在Java 8中执行此操作:
int[] abc = Arrays.stream("1,2,3".split(",")).mapToInt(Integer::parseInt).toArray();
此处a
为abc[0]
,b
为abc[1]
。
Java 7中的类似代码可能是这样的:
String[] abc = "1,2,3".split(",");
int a = Integer.parseInt(a[0]);
int b = Integer.parseInt(a[1]);
int c = Integer.parseInt(a[2]);
答案 2 :(得分:0)
最基本的想法是,在每个三角形中添加两边的长度时,得到的长度应该大于剩余边的长度。假设a,b,c是三角形的边。
public static void main(String[] args){
int a=3, b=4, c=5;
if(a+b > c && a+c>b && c+b>a){
System.out.println("This is a valid trianlge");
}
else{
System.out.println("This is not a valid triangle");
}
}
确保使用从用户输入中获得的值替换a,b和c的值。