-3
public class Test {

    public static void main(String[] args) throws Exception {


        String s1 = "/program/rest/user/forgotPwd/";
        String s2 = "/program/rest/user/forgetPwd/test";
        System.out.println(s1.startsWith(s2));
        System.out.println(s2.startsWith(s1));
    }
}

两种情况都打印false。有什么解释吗?

4

7 回答 7

4

字符串并不像您想象的那么相同。第一个字符串包含forgotPwd,而第二个字符串包含forgetPwd

于 2012-01-03T12:13:28.817 回答
2

因为在第一个字符串中你有forgotPwd 第二个forgetPwd。区别是oe

于 2012-01-03T12:18:46.833 回答
1

您的 s1 不是 s2 的一部分。forgotPwd

检查这个。

String s1 = "/program/rest/user/forgotPwd/";
String s2 = "/program/rest/user/forgotPwd/test";
System.out.println(s1.startsWith(s2));
System.out.println(s2.startsWith(s1));

输出:

false
true
于 2012-01-03T12:14:17.773 回答
1

案例1很明显。
案例 2 是错误的,因为 s1 有“忘记”而 s2 有“忘记”。

于 2012-01-03T12:14:45.700 回答
1

这很自然。仔细观察你的琴弦。

String s1 = "/program/rest/user/forgotPwd/";
String s2 = "/program/rest/user/forgetPwd/test";

s1 有单词forgotPwd,s2 有forgetPwd。有1个字母的区别。

于 2012-01-03T12:16:50.283 回答
1

你在s2中有一个错字,它说:

字符串 s2 = "/program/rest/user/forgetPwd/test";

它应该说:

字符串 s2 = "/program/rest/user/forgotPwd/test";

于 2012-01-03T12:18:20.063 回答
-1

也许您可以尝试指定表单的索引

        "Foobar".startsWith("bar", 3) 

返回true。当然,在检查你的错别字之后。

于 2012-01-03T12:15:24.157 回答