2016-03-15 3 views
0

Я создал программу на netbeans с использованием java. Пользователю будет предложено ввести «Номер:». Например, когда они вводят число «1», данные из списка массивов отображаются «Number: 1» «Name: userA» и «Phone: 2». Если я введу значение, не относящееся к списку массивов, например, появится 5 пользовательских данных. Как я могу ввести проверку, чтобы проверить, удерживается ли введенный номер в списке массивов? Если число не находится в списке массивов, есть способ сообщить об этом пользователю и позволить им снова попробовать ввести номер.несколько подтверждений ввода класса Java

данных Класс:

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

примечание стороны: имена, как DetailsL, DetailsT и так далее ... не делайте этого. Не используйте сокращения; имена должны сказать, что это за вещь. Имена помогают понять, что делает программа; или они скрывают его ... – GhostCat

+0

DetailsL для списка и DetailsT является типом – SineadSmith90

+0

Я получил это. Но я говорю вам: это плохие имена. Например: вы не должны указывать тип своей коллекции в имени. В большинстве случаев достаточно назвать что-то вроде «деталей». Почему говорят, что это список? Возможно, вы измените его позже. – GhostCat

ответ

0

Предполагая, что число является атрибутом в DetailsT классе, вы можете написать метод в Data класса, который возвращает Details объект для числа итерируя список массива, например:

public DetailsT findByNumber(int number){ 
    for(DetailsT details : DetailsL){ 
     if(details.getNumber() == number){ 
      return details; 
     } 
    } 
    return null; 
} 

В основном, вы можете вызвать этот метод и если она возвращает null то, вы можете подсказать пользователю снова ввести номер, например:

Data data = new Data(); 
DetailsT details = data.findByNumber(number); 
if(details == null){ 
//do something 
}else{ 
//do something else 
} 
+0

Я добавил это в класс данных, как мне это назвать в программе? – SineadSmith90

+0

Я добавил пример в ответ. –

Смежные вопросы