>我用java在netbeans上创建了一个程序。系统会提示用户输入"数字:"。例如,当他们输入数字"1"时,数组列表中的数据将显示"数字:1"名称:用户A"和"电话:2"。如果我输入的值不在数组列表中,例如会出现 5 个用户 A 的详细信息。如何输入验证以检查输入的数字是否保存在数组列表中?如果该号码不在数组列表中,是否有办法告诉用户这一点并允许他们再次尝试输入该号码。
数据类:
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"时,仍然会检索用户 A 的详细信息。所有的帮助将不胜感激,谢谢。
是类中的一个属性DetailsT
你可以在类Data
编写一个方法Details
该方法通过迭代数组列表来返回 number 的对象,例如:
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
}