如何提示对象数组的索引并显示值?

时间:2016-05-21 18:34:58

标签: java

我想使用扫描程序通过命令行提示用户从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:  ");
}

2 个答案:

答案 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()方法只返回用户的nameid。因此,对于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的值。