我想在不使用indexOf方法的情况下找到字符串中某些字母的索引。我能够做到这一点,但我也希望任何不在单词/字符串中的字母返回值-1。我尝试了一个if语句,它返回-1以及字母的索引。我只想要一个或另一个。有没有办法做到这一点?谢谢!
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class randomtest {
public static void main (String args[]) {
String text = "Cheeki Breeki";
String letterToFind = "C";
Pattern word = Pattern.compile(letterToFind);
Matcher match = word.matcher(text);
if (!letterToFind.equals(text)) {
System.out.println("-1");
}
while (match.find()) {
System.out.println("Found letter at index "+ match.start());
}
}
}
答案 0 :(得分:0)
您使用以下代码时出错了。正如String letterToFind = "C";
和String text = "Cheeki Breeki";
您在if
语句中对这两个进行比较时,字符串中的字符是否存在总是错误的。因为在一个字符串中您有完整字符串,在另一个变量中您有 characterToFind 。
if (!letterToFind.equals(text)) {
System.out.println("-1");
}
使用下面的代码,使用布尔标志来检查是否找到了字符。
public static void main(String args[]) {
String text = "Cheeki Breeki";
String letterToFind = "A";
Pattern word = Pattern.compile(letterToFind);
Matcher match = word.matcher(text);
boolean letterFound = false;
while (match.find()) {
letterFound = true;
System.out.println("Found letter at index " + match.start());
}
if (!letterFound) {
System.out.println("-1");
}
}