2012-01-03 43 views
-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。任何解釋?String java startsWith

+4

forgotPwd <-> forgetPwd – 2012-01-03 12:14:34

+2

forg'o'tPwd與forg'e'tPwd – A4L 2012-01-03 12:15:38

+1

,請下次再仔細看... – m0skit0 2012-01-03 12:19:34

回答

4

字符串並不像您想象的那樣完全相同。第一個字符串包含forgotPwd,而第二個字符串包含forgetPwd

+0

謝謝,我只是看到:) – shaILU 2012-01-03 12:14:26

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 
1

殼體1是顯而易見的。
第2種情況是錯誤的,因爲s1有「忘記」,s2有「忘記」。

-1

也許你可以嘗試指定形式

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

返回true的索引。在檢查你的拼寫錯誤之後。

1

這很自然。仔細觀察你的琴絃。

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

S1有詞forgotPwd,S2具有forgetPwd。有1個字母的區別。

1

你有S2一個錯字,它說:

串S = 「/程序/ REST /用戶/ forgetPwd /測試」;

,它應該說:

字符串s2 = 「/程序/靜止/用戶/ forgotPwd /試驗」;

2

因爲在第一個字符串中你有forgotPwd,第二個forgetPwd。不同的是oe