Поиск подстроки в Java

У меня есть проблема со сравнением строк. Например, существует эта строка:

"hello world i am from heaven"

Я хочу искать, если эта строка содержит "мир". Я использовал следующие функции, но у них есть некоторые проблемы. Я использовал String.indexof() но если я попытаюсь искать "w", он скажет, что существует.

Короче говоря я думаю, что ищу точное сравнение. Там хорошо работает функция в Java?

Также есть ли какая-либо функция в Java, который может вычислить, журнал базируются 2?

6
задан Alexander Farber 3 May 2017 в 12:34
поделиться

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);
}
25
ответ дан 8 December 2019 в 02:35
поделиться

Для точного сравнения строк, вы можете просто сделать:

boolean match = stringA.equals(stringB);

Если вы хотите проверить, что строка содержит подстроку, вы можете сделать:

boolean contains = string.contains(substring);

Для получения более подробной информации о методах работы со строками обратитесь к javadocs

9
ответ дан 8 December 2019 в 02:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: