我需要编写一个程序,帮助根据当年确定下一年的“同行建议”预算。用户将被要求提供同行顾问的姓名和他们获得的最高学位,以便确定向他们支付多少钱。我使用的是 JOptionPane
而不是 Scanner
,而且我还使用了 ArrayList
。
有没有一种方法可以让用户在一个输入中同时输入姓名和学位并将它们存储为两个不同的值,或者我是否必须有两个单独的输入对话框?示例:将姓名存储为“Name1”,将学位存储为“Degree1”,以便计算他们的具体工资。
此外,我正在使用 ArrayList
,但我知道该列表最多需要容纳六 (6) 个元素,是否有更好的方法来完成我想要做的事情?
如果有必要的话,这是我在开始考虑这个问题之前所记录的内容。
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class PeerTutoring
{
public static void main(String[] args)
{
ArrayList<String> tutors = new ArrayList<String>();
for (int i = 0; i < 6; i++)
{
String line = null;
line = JOptionPane.showInputDialog("Please enter tutor name and their highest earned degree.");
String[] result = line.split("\\s+");
String name = result[0];
String degree = result[1];
}
}
}
最佳答案
"有没有办法让用户同时输入姓名和学位 在一个输入中,但将它们存储为两个不同的值。”
是的。例如,您可以要求用户输入以空格分隔的输入,然后拆分结果:
String[] result = line.split("\\s+"); //Split according to space(s)
String name = result[0];
String degree = result[1];
现在您有两个变量的输入。
“我决定使用ArrayList,但我知道将输入的名称数量(6),是否有更合适的数组方法可供使用?”
ArrayList
可以,但是如果长度固定的话,可以使用固定大小的数组。
关于OP更新
你做错了,应该是这样的:
ArrayList<String[]> list = new ArrayList<String[]>(6);
String[] splitted;
String line;
for(int i=0;i<6;i++) {
line = JOptionPane.showInputDialog("Please enter tutor name and their highest earned degree.");
splitted = line.split("\\s+");
list.add(splitted);
}
for(int i=0;i<6;i++)
System.out.println(Arrays.deepToString(list.get(i))); //Will print all 6 pairs
您应该创建一个ArrayList
,其中包含一个表示输入的字符串数组(因为用户输入对作为输入)。现在,您所要做的就是将此对插入到ArrayList
中。
关于java - 带数组的多个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15485885/