0
我在密码类中编写代码,该密码生成一定长度的密码。测试驱动程序PasswordTest将不同的长度输入到generatePassword方法中。这两个程序都编译,但是当我尝试运行PasswordTest.java时,我在线程“main”中得到错误:异常。我如何纠正这个错误并让我的测试驱动程序工作?随机密码生成器测试驱动程序将不会执行
这里是密码类:
/**
* Password.java -- Generates random passwords
* @author Sam Harrison
* @version 21-Sept-2014
*
*/
import java.util.Random;
public class Password
{
public char randomChar(int length)
{
final int NUM_CHARS = 62;
Random rand = new Random();
int num = rand.nextInt(NUM_CHARS);
if (num <= 9)
num += 48;
else if (num <= 35)
num += 55;
else
num += 61;
return (char) num;
}
public String generatePassword(int length)
{
String str1 = "abcdefghijklmnopqrstuvwxyz1234567890";
Password randObj = new Password();
str1 = randObj.generatePassword(length);
return str1;
}
}
下面是测试车手:
/**
* PasswordTest.java
* @author Sam Harrison
* @version 21-Sept-2014
*
*/
public class PasswordTest
{
public static void main (String[] args)
{
int length = 3;
Password randObj = new Password();
randObj.generatePassword(length);
}
}
我迷失在如何编写循环,我猜。 – 2014-09-21 23:42:36
那么你已经有'randomChar'(只是删除那个未使用的'length'参数)。您可以使用'String password =“”;'声明一个空字符串,并通过将'randomChar'中的字符与'+ ='运算符相加来构建它。所以你所要做的就是声明一个空字符串,然后在for循环中追加字符,直到它达到期望的长度。 – Rotten194 2014-09-22 22:17:57