我想使用扫描程序通过命令行提示用户从Rational Array的预定义索引中进行选择。之后,我想显示所选Rational Object的值。我怎么能这样做?下面是我到目前为止的代码
//Array of rational objects that I want to let user select from
Rational[] rationals = {new Rationa(2, 3), new Rational(2, 18), new Rational(3,12)};
//Method for displaying value of object
public static void displayValue()
{
System.out.println("Please select from index: ");
}
答案 0 :(得分:0)
首先为.toString()
类创建Rational
方法。然后你可以像这样打印数组:
System.out.println(Arrays.toString(rationals));
然后你可能得到这样的输入:
Scanner sc = new Scanner(System.in);
int index = sc.nextInt();
确保给出了可接受的数字:
if(index > -1 && index < rationals.length){
System.out.println(rationals[index]);
}else{
System.out.println("Please input an acceptable value.")
}
如果你想继续要求输入,直到给出一个可接受的输入,你可以使用while
循环来完成:
boolean askAgain = true;
while(askAgain){
int index = sc.nextInt();
if(index > -1 && index < rationals.length){
System.out.println(rationals[index]);
askAgain = false;
}else{
System.out.println("Please input an acceptable value.")
}
}
编辑:您可能希望指定列表从索引0
开始,而不是1
。
EDIT2:.toString()
示例,
public class Person(){
private String name;
private int id;
public Person(String n, int id){
this.name = n;
this.id = id;
}
public String toString(){
return "Name: " + name + ", " + id;
}
}
对象类的toString();
方法仅用于返回&#34;有用的信息&#34;作为String
。在此示例中,对于Person
类,toString()
方法只返回用户的name
和id
。因此,对于Rational
类,您可以调整该方法以将对象正确地转换为字符串。
用法:
Person p1 = new Person("Jake", 1);
System.out.println(p1.toString());
输出:
"Name: Jake, 1"
答案 1 :(得分:-1)
您需要使用Scanner
来从控制台读取输入。要使用Scanner
,您需要import java.util.Scanner;
此行创建新的Scanner
并将其附加到System.in
,这是该程序的标准输入。
Scanner console = new Scanner(System.in);
现在我们可以从输入读取一个整数来选择索引。
int index = console.nextInt();
之后,您需要做的只是打印数组中index
的值。