2016-05-23 69 views
-3
public class learningJava 
{ 
    public static String last4(String s) 
    { 
     String str = "something"; 
     //int length = str.length(); 
     String substr = str.substring(str.length() - 4); 
     if (str.length() < 4) 
     { 
      return str; 
     } 
     return str.substring(str.length() - 4); 
    } 

} 
+1

以及基於該代碼的問題是什麼? –

+0

我猜他正在調用此方法(代碼未顯示),並且他沒有傳入字符串。 –

+0

對不起,忘了發佈主要的東西...是的,編譯器返回錯誤:空參數字段。爲什麼這樣?它說沒有語法錯誤... – JayZ

回答

0

你的函數想要一個參數爲String s。可能你會得到這個錯誤,因爲你在某個地方使用了這個函數而沒有添加參數。

當您想要使用此功能,你必須使用類似代碼:

String y; 

String x = last4(String y); 

事實上,你並不需要使用,你的函數不需要任何參數,這樣你就可以刪除字符串並使用你的功能。

public class learningJava 
{ 
    public static String last4() 
    { 
     String str = "something"; 
     //int length = str.length(); 
     String substr = str.substring(str.length() - 4); 
     if (str.length() < 4) 
     { 
      return str; 
     } 
     return str.substring(str.length() - 4); 
    } 

} 

,你可以把它作爲像

String y; 
y = last4(); 

或者,如果你想使用其他的字符串,然後在你的函數「東西」,你可以改變它像:

public class learningJava 
{ 
    public static String last4(String y) 
    { 

     //int length = y.length(); 
     String substr = y.substring(y.length() - 4); 
     if (y.length() < 4) 
     { 
      return y; 
     } 
     return y.substring(y.length() - 4); 
    } 

} 

你可以通過使用一個參數來調用這個函數,就像我的第一個例子。

+0

非常感謝這種深入的答案令人沮喪。 – JayZ

+0

如果解決了您的問題並感謝您的回覆,我很高興。 – ReadyFreddy

0

你還沒有使用傳入last4方法的s參數。 另外,類名應該以大寫字母開頭。所以它應該是LearningJava

我想你想要的是這樣的:你想用的子方法之前執行,如果(s.length()< 4)部分

public class LearningJava { 
    public static String last4(String s) { 
     if(s.length() < 4) { 
      return s; 
     } 
     String subs = s.substring(s.length() - 4); 
     return subs; 
    } 

    public static void main(String args[]) { 

     System.out.println(LearningJava.last4("something")); 
    } 
} 

注意。否則,你會得到一個錯誤。

+0

謝謝Sameer知道了。 – JayZ