-2

下午好,我想编写一个到达(询问)两个字符串并检查 String2 是否属于 String1 情况的方法。如果 s2 在 s1 中,则返回 String2 最后一次出现的索引,否则返回 -1。使用 lastIndexOf() 方法很容易,但我不希望这样。实际上,如果我们不使用方便的字符串方法(除了 charAt 和 length)会好得多。

所以,这是我到目前为止的代码(这是一个非常糟糕的代码):

int contains() {
    Scanner scan0 = new Scanner(System.in);
        System.out.println("Enter firts string: ");
    String s1 = scan0.nextLine();
        System.out.println("Enter second string: ");
    String s2 = scan0.nextLine();

    for(int i = 0; i<s1.length(); i++) {
        for(int t = 0; t<s2.length(); t++) {
            char desiredChar = s2.charAt(t);
            char letter = s1.charAt(i);
            if(desiredChar == letter)
                System.out.print(s2.charAt(i));
        }

    }
    return 0;
}

它给出了java.lang.StringIndexOutOfBoundsException错误。

4

1 回答 1

1

您不检查 in 字符的s2出现s1。您将需要通过s1 charchar检查是否char与以下一次匹配s2。意思是如果你有strings给定的你迭代s1并以第一个char=M和下一个 2 为例,所以你有 3 个字符,就像 in 一样s2。那么你有Misthe因为它们不匹配,你必须转到下一个字符,然后是下面的字符,iss依此类推,直到你有匹配的字符串。拥有它们后,您可以返回 s1 中字符串的第一个字符的索引。

于 2016-11-18T11:00:46.333 回答