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