嗨我想创建一个字符串方法,我必须创建一个返回的 readpassword 方法
密码是一个字符串,因此创建声明的方法就是这样
public void readpassword(String inputpassword) //inputpassword is declared in the main method
{
(whatever command)
return inputpassword;
}
我的代码对吗?
嗨我想创建一个字符串方法,我必须创建一个返回的 readpassword 方法
密码是一个字符串,因此创建声明的方法就是这样
public void readpassword(String inputpassword) //inputpassword is declared in the main method
{
(whatever command)
return inputpassword;
}
我的代码对吗?
public String readpassword(String inputpassword)
使用String
代替void
在方法签名中使用String
而不是。void
public String readpassword(String inputpassword){
return inputpassword;
}
您误解了变量的范围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();
public String readpassword(String inputpassword){
return inputpassword;
}
更新返回类型和参数
方法签名应该是
public String readpassword() //inputpassword is declared in the main method
{
String inputpassword;
// logic
return inputpassword;
}
您的函数需要返回一个字符串:
public String readpassword(...){
但是,重要的是不要处理这样的密码。一个原因是字符串可以找到进入全局字符串池的方式,这个全局字符串池非常容易阅读,因此不安全。
一种方法是改用字符数组:
public char[] readpassword(...){