我使用java在netbeans上创建了一个程序。提示用户输入“数字:”。例如,当他们输入数字“1”时,数组列表中的数据显示为“Number:1”“Name:userA”和“Phone:2”。如果我输入的值不在数组列表中,例如5将显示userA的详细信息。我如何输入验证来检查输入的数字是否保存在数组列表中?如果数字不在数组列表中,则有一种方法可以告诉用户这个并允许他们再次尝试输入数字。
数据类:
public class Data {
private final List<DetailsT> DetailsL;
public Data() {
DetailsL = new ArrayList<>();
DetailsL.add(new DetailsT(1, "userA", 2));
DetailsL.add(new DetailsT(2, "userB", 9);
}
public ArrayList<?> getList() {
return (ArrayList<?>) DetailsL;
}
输出类:
//initialize streams so we can send message
in = new DataInputStream(clientSocket.getInputStream());
out = new DataOutputStream(clientSocket.getOutputStream());
Data p = new Data();
List<DetailsT> DetailsL = (List<DetailsT>) p.getList();
for (DetailsTq : detailsT) {
int number;
while (true) {
// as soon as a message is being received, print it out!
number = in.readInt();
System.out.println("\n" + "Number: " + number);
}
}
}
}
此外,当用户在程序中输入-1时,会话应该结束。我在我的代码中尝试了这个,但是当输入“-1”时,仍然会检索userA的详细信息。感谢所有帮助,谢谢。
答案 0 :(得分:0)
假设number是DetailsT
类中的一个属性,您可以在Data
类中编写一个方法,通过迭代数组列表返回Details
对象的数字,例如:
public DetailsT findByNumber(int number){
for(DetailsT details : DetailsL){
if(details.getNumber() == number){
return details;
}
}
return null;
}
在main中,您可以调用此方法,如果它返回null
,则可以提示用户再次输入该数字,例如:
Data data = new Data();
DetailsT details = data.findByNumber(number);
if(details == null){
//do something
}else{
//do something else
}