Как уже отмечали другие, ваша проблема в том, что вы сравниваете всю строку s
с символом c
, который всегда ложен.
Вот две реализации ваших методов, использующих потоки Java:
public static boolean seqSearch(String string, char character) {
return string.chars().anyMatch(c -> c == character);
}
Это создает IntStream
, содержащий все символы, возвращающие true, если любой из них равен true.
public static int seqSearchPos(String string, char character) {
return IntStream.range(0, string.length())
.filter(i -> string.charAt(i) == character)
.findFirst()
.orElse(-1);
}
Здесь вы создаете IntStream
от 0
до n - 1
и возвращаете первый индекс, если символ найден.Если нет, возвращается -1
.
Помимо всего этого вы можете просто использовать собственный метод String.indexOf()
, который делает именно то, что вы хотите:
public static int seqSearchPos(String string, char character) {
return string.indexOf(character);
}
Вы также можете использовать этот метод для вашего seqSearch()
метода:
public static boolean seqSearch(String string, char character) {
return string.indexOf(character) >= 0;
}
В качестве альтернативы вы можете использовать собственный метод String.contains()
для достижения этого:
public static boolean seqSearch(String string, char character) {
return string.contains(String.valueOf(character));
}