Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Сравнение строк / 8 сообщений из 8, страница 1 из 1
12.11.2017, 20:38
    #39551808
glamis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение строк
А как можно сравнить строковую константу и значение функции:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
...
return myRead() == "Hello"  // здесь надо проверить и вернуть true or false
...

public static String myRead {
   BufferedReader read = new BufferedReader(new InputStreamReader(System.in));
   return read.readLine()
} 
...
Рейтинг: 0 / 0
12.11.2017, 21:04
    #39551814
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение строк
...
Рейтинг: 0 / 0
12.11.2017, 21:09
    #39551817
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение строк
В Java нет функций. Есть методы. Методы возвращают значения, а не являются ими.
Значение, которое, вернул метод лучше положить в локальную переменную. Удобнее и читать и дебажить.
...
Рейтинг: 0 / 0
12.11.2017, 21:18
    #39551822
glamis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение строк
Blazkowicz,

не хочется писать лишний код. Через переменную можно сделать через equal. А вот с методом как быть?
...
Рейтинг: 0 / 0
12.11.2017, 21:28
    #39551827
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение строк
glamisBlazkowicz,

не хочется писать лишний код. Через переменную можно сделать через equal. А вот с методом как быть?
Аналогично
(разумеется не с методом, а с экземпляром объекта который возвращает метод)
...
Рейтинг: 0 / 0
12.11.2017, 21:42
    #39551832
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение строк
glamisreturn myRead() == "Hello" // здесь надо проверить и вернуть true or false

return myRead().equalsIgnoreCase( "Hello" );
...
Рейтинг: 0 / 0
12.11.2017, 21:50
    #39551835
glamis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение строк
Leonid Kudryavtsev,

Спасибо, помогло!
...
Рейтинг: 0 / 0
12.11.2017, 22:50
    #39551861
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение строк
glamisне хочется писать лишний код.
Вам кажется что он лишний. Вот только метод это действие. А сравнивают значения. Когда вы начинаете сравнивать действия понимания тому кому предстоит ваш код читать это никак не добавляет.

И я уже упомянул выше отладку. Но вам, конечно же, наплевать. Вот вы записали в файл текст. Вызвали, а результат сравнения не тот который вы ожидаете. Как вы теперь своё барахло дебажить будете? Где брейкпоинт поставите? В какой переменной значение посмотрите? Или вызовите "read.readLine()" в отладке чтобы увидеть значение, что сделает дальнейшую отладку невозможной, потоиму что стрим читается единожды.

Соединять методы в единую цепь можно только в исключительных случаях - билдеры, DSL и т.п. когда нужно множество вызовов, а результаты будут типовыми и промежуточные значения не особо важны.
У начинющих же программистов цепочка вызовов методов у тех классов что они написали в 99% случаев сигнализирут о нарушении инкапсуляции. Ибо мне нифига не понятно почему нельзя было написать метод следующего вида:
Код: java
1.
 boolean isMyReadEqualsTo(String value)



Ну, а если заглянуть в тело метода, то вспоминается, например, такой класс.
https://docs.oracle.com/javase/7/docs/api/java/io/Console.html
https://docs.oracle.com/javase/tutorial/essential/io/cl.html
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Сравнение строк / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]