几个 Java 类验证输入



>我用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 的详细信息。所有的帮助将不胜感激,谢谢。

假设 number

是类中的一个属性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
}

最新更新