Member 13384372 Ответов: 3

Сканер программ Java и строка


Привет! Может ли кто-нибудь сказать мне, что не так с этой java-программой?? он всегда выполняет второе условие (else) и не распознает первое?
Большое спасибо.

Что я уже пробовал:

import java.util.Scanner; 
public class Main 
{ 
public static void main(String[] args) 
{ 
System.out.println("Choose your gender:"); 
Scanner sc=new Scanner(System.in); 
String gender=sc.nextLine(); 
if(gender=="female") 
{System.out.println("Hi"); 
} 
else{ 
System.out.println("sorry"); 
} 

} 
}

CPallini

Java просто немного придирается к сравнению объектов... :-)

3 Ответов

Рейтинг:
26

Thomas Daniels

Не используйте == здесь: используйте gender.equals("female") скорее, чем gender == "female"

Читайте причину здесь: Java String. equals versus = = - переполнение стека[^] или здесь: Как сравнить строки в Java? - переполнение стека[^]


CPallini

5.

Member 13384372

Отлично!Я ее разгадал!!

Member 13384372

Вы также знаете, как написать функцию выхода??
Например: если пользователь вводит "выход" в любой момент,он существует!
как бы вы отредактировали приведенный выше код??

Thomas Daniels

System.exit(0) выход из приложения.

Member 13384372

Да, я знаю эту функцию, но я не знаю, как использовать ее в кодировках??
Я написал его в конце, и когда я что-то написал, он просто вышел!!то, что я хочу, это как написать "выход", и он подчиняется и выйдет в любой момент!!

Thomas Daniels

Точно так же, как с условием "пол равен женщине": создайте оператор if для строки чтения, которая равна "выходу".

Member 13384372

О, большое спасибо!!!
Это было успешное испытание :)

Рейтинг:
2

Dave Kreskowiak

Просто дикое предположение, но я бы так сказал gender == "female" условие никогда не разрешается true.

Возможно, вам захочется узнать, что это за содержимое. gender это когда вы ожидаете, что условие будет true.


CPallini

5.

Рейтинг:
2

Patrice T

Совет: существует общепринятая практика, помогающая проверять вводимые пользователем данные.
Эта практика заключается в преобразовании вводимых пользователем данных в нижний или верхний регистр. Таким образом, входные данные, такие как "женщина", "женщина" или "женщина", будут соответствовать тесту.


Member 13384372

Простите, но как?

Patrice T

Google - ваш друг !
просто попробуйте использовать ключевые слова " Java lowercase"