2013-10-22 19 views
-3

您好我想創建一個字符串的方法,我要創建返回如何創建一個字符串的方法

這是一個字符串,以創建描述的方法中是這樣

口令的readpassword方法
public void readpassword(String inputpassword) //inputpassword is declared in the main method 
{ 
    (whatever command) 
    return inputpassword; 
} 

是我的代碼對不對?

+3

如果你想要回東西,那麼你必須把返回類型的方法簽名。你的方法有'void',它可能應該有'String'。 –

回答

1

使用String,而不是void的方法簽名。

public String readpassword(String inputpassword){ 
    return inputpassword; 
} 
3
public String readpassword(String inputpassword) 

使用String,而不是void

0
public String readpassword(String inputpassword){ 
    return inputpassword; 
} 
0

更新的返回類型和參數

方法簽名應該是

public String readpassword() //inputpassword is declared in the main method 
    { 
    String inputpassword; 
    // logic 
    return inputpassword; 
    } 
1

你曲解變量inputpasswordscope,你能寫回來的路上值。主要宣佈,沒有理由通過inputpassword(我認爲這是空的)到您的readpassword()方法。相反,您應該從方法內部讀取密碼並返回結果。

你最好做這樣的事情:

public static String readPassword() 
{ 
     String passwordReadResult; 

     // read the password from wherever it comes, e.g. console 
     // ... 

     return passwordReadResult; 
} 

更新:

我覺得你的情況,你不想做通inputpasswordreadPassword方法(有情況這是有道理的,但我不想在這裏添加混淆)。 如果某個方法需要這些數據來處理它,那麼將其傳遞給方法。如果你有外部聲明inputpassword,那麼它還不包含密碼。因此將它傳遞給readpassword是沒有意義的,因爲readpassword不需要一個空密碼變量!它可以從控制檯讀取密碼,但它不需要inputpassword。如果讀取密碼完成該方法,則通過return聲明返回值。爲了讓你的密碼保存在inputpassword的主要你做s.t.像這樣:

String inputpassword = readPassword(); 
+0

我宣佈inputpassword作爲主要方法中的字符串,所以我不應該在大括號內添加一個該變量?當我想創建一個readpassword方法 – sherrez

0

你的函數需要返回一個字符串:

public String readpassword(...){ 

但是,不處理這樣密碼是很重要的。一個原因是字符串可以找到他們的方式進入全球字符串池,這是令人驚訝的容易閱讀,因此,是不安全的。一輪

的一種方法是使用字符數組來代替:

public char[] readpassword(...){ 

Why is char[] preferred over String for passwords?

+0

-1?苛刻,不是? – Bathsheba

+0

+1對於我以前從未想過的事情 – LostAvatar

相關問題