Java 带阵列的多输入
我需要写一个计划,帮助根据当前年度确定下一年“同行建议”的预算。用户将被要求提供同行顾问的姓名和他们获得的最高学位,以确定支付给他们多少钱。我使用的是Java 带阵列的多输入,java,arrays,arraylist,user-input,joptionpane,Java,Arrays,Arraylist,User Input,Joptionpane,我需要写一个计划,帮助根据当前年度确定下一年“同行建议”的预算。用户将被要求提供同行顾问的姓名和他们获得的最高学位,以确定支付给他们多少钱。我使用的是JOptionPane而不是Scanner,我还使用了ArrayList 是否有一种方法可以让用户在一个输入中同时输入名称和程度,并将它们存储为两个不同的值,或者我必须有两个单独的输入对话框?示例:将名称存储为“Name1”,将学位存储为“Degree1”,以便计算他们的具体工资 此外,我使用的是ArrayList,但我知道列表最多需要包含六(6)
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];
}
}
}
import java.util.ArrayList;
导入javax.swing.JOptionPane;
公共类远程登录
{
公共静态void main(字符串[]args)
{
ArrayList tutors=新的ArrayList();
对于(int i=0;i<6;i++)
{
字符串行=null;
line=JOptionPane.showInputDialog(“请输入导师姓名及其最高学位”);
字符串[]结果=line.split(\\s+);
字符串名称=结果[0];
字符串度=结果[1];
}
}
}
您可以将来自JOptionPane的输入存储在一个字符串中,然后将该字符串拆分为一个数组以存储输入的名称和程度。例如:
String value = null;
value = JOptionPane.showInputDialog("Please enter tutor name and
their highest earned degree.");
String[] tokens = value.split(" ");//if you input name followed by space followed by degree, this splits the input by the space between them
System.out.println(tokens[0]);//shows the name
System.out.println(tokens[1]);//shows the degree
现在,您可以使用标记[0]
将名称添加到列表中。“是否有一种方法供用户同时输入名称和学位?”
在一个输入中,但将其存储为两个不同的值。“
是。您可以要求用户输入以空格分隔的输入,例如,并拆分结果:
String[] result = line.split("\\s+"); //Split according to space(s)
String name = result[0];
String degree = result[1];
现在您有了两个变量的输入
“我决定使用ArrayList,但我知道将要输入的名称数(6),是否有更合适的数组方法可供使用?”
ArrayList
可以,但如果长度固定,use可以使用固定大小的数组
关于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 list=新的ArrayList(6);
字符串[]已拆分;
弦线;
对于(int i=0;我必须使用JOptionPane还是可以使用扫描仪?我们必须使用JOptionPane。读完我的书后,我觉得我可以使用多维数组。这可能吗?请参阅我提供的答案,希望它有帮助。这真的很有帮助。如果我想让用户在单独的对话框中输入名称和学位,我该如何做?F或者,让他们输入名称和程度,然后在点击“确定”后,让他们用不同的名称和程度重复相同的操作。我只需要设置一个循环吗?是的,只需设置一个循环。如果您发现答案有帮助,您可以将其勾选为主要答案:-)@MarounMaroun是否仍要在一个JOptionPane.showMessageDialog而不是六个单独的println中显示列表?迭代ArrayList并手动打印值,或者使用System.out.println(Arrays.deepToString(list.get(i)).replaceAll(\\[\\],“”);
,如果有帮助,请接受答案