2016-03-25 3 views
0

Поэтому я хочу попросить пользователя ввести некоторые данные, такие как имя и т. Д., А затем добавить их в ArrayList. Если пользователь вводит пробелы, будет показано сообщение, и пользователю будет предложено ввести его снова.Ввод и сохранение ответа

System.out.println("Name: "); 

String name = input.nextLine(); 

while(name.contains(" ")){ 

System.out("Names can't be empty"); 

System.out.println("Name: "); 

name = input.nextLine(); 

} 

Person newP = new Person(name); 

persons.add(newP); 

Код работает нормально, если пользователь вводит некоторые символы. Однако, если он не делает и вводит цикл while, то добавляется только пустое пространство.

Что я могу сделать, чтобы убедиться, что он добавляет вход внутри цикла?

ответ

0

Вы можете использовать время цикла в цикле через командную ввода до переменной name ничего, кроме «» (ничего):

System.out.println("Name: "); 

String name = input.nextLine(); 

while(name.contains("")){ 

System.out("Names can't be empty"); 

System.out.println("Name: "); 

name = input.nextLine(); 

} 

Person newP = new Person(name); 

persons.add(newP); 

Ваша проблема в том, что у вас было время, так что Ждут» t want " " не "" Это означает, что когда вы просто нажимаете Enter, значение не было ничем иным, как пробелом .. так оно и продолжалось.

Я также сделал это в Python, потому что я думал, что вы использовали питона на первый, так что если по какой-либо причине вы хотите его, вот он:

print("Names can't be empty") 
name= "" 
while name == "": 
    name = input("Name: ") 
print (name) 

Успехов!

+0

большое спасибо trevor! – Ilja

+0

@Ilja Приветствую вас. Если мой ответ решит вашу проблему, пожалуйста, нажмите эту галочку рядом с моим ответом и подумайте о том, чтобы нажимать стрелку вверх, если вам понравился мой ответ! Спасибо, и я рад, что мой ответ помог вам! –