如何在不使用Java中的indexOf的情况下复制正常运行的indexOf方法?

时间:2016-11-20 11:55:43

标签: java

我想在不使用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());
        }

       } 

}

1 个答案:

答案 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");
        }
    }