У меня есть проблема со сравнением строк. Например, существует эта строка:
"hello world i am from heaven"
Я хочу искать, если эта строка содержит "мир". Я использовал следующие функции, но у них есть некоторые проблемы. Я использовал String.indexof()
но если я попытаюсь искать "w", он скажет, что существует.
Короче говоря я думаю, что ищу точное сравнение. Там хорошо работает функция в Java?
Также есть ли какая-либо функция в Java, который может вычислить, журнал базируются 2?
Я предполагаю, что проблемы с indexOf()
, связанные с использованием версии символов (иначе зачем бы вы искали w при поиске мира?). Если так, то indexOf()
может взять строковый аргумент для поиска:
String s = "hello world i am from heaven";
if (s.indexOf("world") != -1) {
// it contains world
}
как для базы логов 2, то это просто:
public static double log2(double d) {
return Math.log(d) / Math.log(2.0d);
}
Для точного сравнения строк, вы можете просто сделать:
boolean match = stringA.equals(stringB);
Если вы хотите проверить, что строка содержит подстроку, вы можете сделать:
boolean contains = string.contains(substring);
Для получения более подробной информации о методах работы со строками обратитесь к javadocs