2017-07-20 34 views
-2

我正在解決以下問題:給定一個字符串和第二個「字」字符串,我們會說如果該字符串出現在字符串的前面,除了它的第一個字符不需要完全匹配。在匹配中,返回字符串的前面,否則返回空字符串。所以,對於字符串「hippo」,單詞「hi」返回「hi」,「xip」返回「hip」。字將是至少長度1.substring()字符串類的函數

startWord("hippo", "hi") → "hi" 

startWord("hippo", "xip") → "hip" 

startWord("hippo", "i") → "h" 

我的代碼如下:

public String startWord(String str, String word) { 
    String front = ""; 

    if (str.length()>=1 && word.length() == 1) { 
     front = Character.toString(str.charAt(0)); 
    } else { 
     if (str.length() >= 1 && str.substring(1, word.length() - 1).equals(word.substring(1))) 
     front = str.substring(0, word.length()); 
    } 

    return front; 
} 

front=str.substring(0,word.length())正在返回 「」 值。這是一個邏輯問題,而不是編碼問題。試圖在我的邏輯上作爲業餘程序員工作。謝謝你支持我!

+0

str.substring(0,str.length()); (str.length()> = 1 && str.substring(1,word.length() - 1).equals(word.substring(1)))''是錯誤的,所以這個邏輯是原始字符串 –

+0

。前'從來沒有得到一個值分配給它 –

+0

學習調試 - 把這個'System.out.println(str.substring(1,word.length() - 1)); \t \t System.out.println(word.substring(1));' 在'if語句之前寫入你的代碼 –

回答

0
public String startWord(String str, String word) { 
    if (str.substring(1, word.length()).equals(word.substring(1, word.length()))) { 
     return str.substring(0, word.length); 
    } else { 
     return ""; 
    } 
} 
+1

你能告訴我我的代碼有什麼問題嗎? –

+0

你能告訴我輸入和輸出對你來說是錯誤的嗎? – itsmichaelwang

+0

我不認爲你應該做'str.substring(1,word.length() - 1)'。試試'str.substring(1,word.length())'而不是?我認爲它不包括第二長度。 – itsmichaelwang