2015-05-02 3 views
1

Я пытаюсь сравнить строку с другой или строку с инструкцией, но я не могу найти, где ошибка. Я попытался с == но не работал, то я изменил к .equals()Как читать и сравнивать строки в Java?

static Scanner scan = new Scanner(System.in); 
public static void main(String[] args) { 
    System.out.print("En este programa calcularemos el area de una figura.\n" + 
       "Ingresa a continuacion que figura calcularemos."); 
    String triangulo = "triangulo"; 
    String figura = scan.nextLine(); 
    if (figura.equals(triangulo)){ 
     System.out.print("Ingrese base y altura del triangulo.\n"); 
     double base = scan.nextDouble(); 
     double altura = scan.nextDouble(); 
     System.out.print("La altura es " + (base*altura)/2); 
    } 
} 

Идея заключается в том, чтобы спросить у пользователя имя формы, площадь которой будет рассчитываться, и если он равен один дифференты формы, которые я собираюсь назвать, тогда он будет использовать формулу в зависимости от формы.

+0

что вы вводили во время выполнения – Sam

+2

В чем проблема? Код работает как есть. – pathfinderelite

+0

Использование 'equals()' является правильным. См. [Как сравнить строки в Java?] (Http://stackoverflow.com/questions/513832/how-do-compare-strings-in-java) – Jesper

ответ

0

Заменить строку: String figura = scan.nextLine(); с String figura = scan.next(); и ваша программа будет работать: см изображение ниже

triangle

Также см here разница между Scanner.next() и Scanner.nextLine()

0

Вы должны провести различие между сопоставлением ссылок и значений. Использование «==» означает, что вы сравниваете ссылки не значениями. Ссылка здесь описывает, какие java-методы сравнивают переменные в целом и в каких случаях вы должны их использовать.

http://www.leepoint.net/data/expressions/22compareobjects.html

Я надеюсь, что это ответ на ваш вопрос.

2

Когда я пробовал эту программу и ввел в нее triangulo, она, похоже, работает для меня, когда она печатается Ingrese base y altura del triangulo.. Затем введите значение для сторон, и оно работает. Я думаю, что код правильный.

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