2015-01-18 2 views
0

Я пытаюсь создать программу, которая даст вам ваш «идеальный» вес, и думаю, что я его в основном понял. Однако, когда я запускаю код, ничего не происходит. Я думаю, это связано с тем, что он неправильно извлекает индикатор, если он должен быть метрическим или имперским.Ошибка при получении символа

Строка name, heightString, unitString; двойной рост;

name = nameInput.getText(); 
    unitString = unitInput.getText(); 
    heightString = heightInput.getText(); 

    height = Double.parseDouble(heightString); 

    if (unitString == "m") 
    { 
     outputLabel.setText(name + "'s ideal weight is" + (height * height * 25) + "kgs"); 
    } 

    else if (unitString == "i") 
    { 
     outputLabel.setText(name + "'s ideal weight is" + (height * height * 25/703 + "lbs")); 
    } 

Вот что у меня есть, я довольно уверен, что проблема у меня не было условие, если заявление правильно, но я не в состоянии найти то, что я должен делать.

+0

На каком языке это? – Schwern

+0

во втором setText вызов вашей скобки немного запутался. Храните математику внутри одного набора (вы добавили «lbs» к высоте^2 * 25/703). –

+0

Возможный дубликат [Как сравнить строки в Java?] (Http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) –

ответ

2

в Java использовать .equals() вместо == как:

if (unitString.equals("m")) {..} 
+0

'==' проверяет ссылочное равенство (т. е. являются ли они одним и тем же объектом, а не если они имеют одинаковый контент). Более подробно см. Https://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java – Schwern

2

Является ли это Java? Если это так, то == не будет работать для сравнения строк. Используйте .equals():

name = nameInput.getText(); 
unitString = unitInput.getText(); 
heightString = heightInput.getText(); 

height = Double.parseDouble(heightString); 

if ("m".equals(unitString)) 
{ 
    outputLabel.setText(name + "'s ideal weight is" + (height * height * 25) + "kgs"); 
} 
else if ("i".equals(unitString)) 
{ 
    outputLabel.setText(name + "'s ideal weight is" + (height * height * 25/703 + "lbs")); 
} 

Поместите строковый литерал ("м") первым, чтобы избежать NullPointerException если unitString является null.

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