-1

嗨我想创建一个字符串方法,我必须创建一个返回的 readpassword 方法

密码是一个字符串,因此创建声明的方法就是这样

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

我的代码对吗?

4

6 回答 6

3
public String readpassword(String inputpassword)

使用String代替void

于 2013-10-22T10:57:49.220 回答
2

在方法签名中使用String而不是。void

public String readpassword(String inputpassword){
  return inputpassword;
}
于 2013-10-22T10:58:48.803 回答
1

您误解了变量的范围inputpassword以及您能够将值写回它的方式。在 main 中声明,没有理由将inputpassword(我假设它是空的)传递给您的readpassword()方法。相反,您应该从方法内部读取密码并返回结果。

你最好做这样的事情:

 public static String readPassword()
 {
      String passwordReadResult;

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

      return passwordReadResult;
 }

更新:

我认为在您的情况下,您不想传递inputpassword给您的readPassword方法(在某些情况下这是有道理的,但我不想在这里增加混淆)。如果需要此数据对其进行操作,则将某些内容传递给方法。如果您已经inputpassword在外面声明,那么它还没有包含密码。所以传递它readpassword是没有意义的,因为readpassword不需要一个空的密码变量!它可以从控制台读取密码,但不需要这样做inputpassword。如果该方法完成读取密码,则它通过return语句返回它的值。要将您的密码存储inputpassword在 main 中,您可以这样做:

String inputpassword = readPassword();
于 2013-10-22T11:00:00.250 回答
0
public String readpassword(String inputpassword){
    return inputpassword;
}
于 2013-10-22T10:59:44.113 回答
0

更新返回类型和参数

方法签名应该是

   public String readpassword() //inputpassword is declared in the main method
    {
    String inputpassword;
  // logic
     return inputpassword;
    }
于 2013-10-22T10:59:48.610 回答
0

您的函数需要返回一个字符串:

public String readpassword(...){

但是,重要的是不要处理这样的密码。一个原因是字符串可以找到进入全局字符串池的方式,这个全局字符串池非常容易阅读,因此不安全。

一种方法是改用字符数组:

public char[] readpassword(...){

请参阅为什么 char[] 首选密码而不是字符串?

于 2013-10-22T11:01:35.437 回答