2013-10-11 48 views
0

我想要創建一個應用程序,要求用戶從輸入對話框輸入密碼。密碼必須少於10個字符且超過6個字符。並且,密碼應至少包含一個數字或信。當密碼滿足所有要求時,要求用戶再次輸入密碼,並且不要讓用戶繼續,直到第二個密碼與第一個密碼匹配。我的代碼如下,但它不檢查字母或數字。 任何人都可以幫忙嗎?無法獲得正確的密碼格式

import javax.swing.*; 
import java.awt.*; 
import java.util.Scanner; 

public class Password{ 

public static void main(String[] args){ 

String firstPassword=""; 
String secondPassword=""; 

char charChecked; 

boolean letter = false; 
boolean digit = false; 

int len=firstPassword.length(); 

firstPassword= JOptionPane.showInputDialog("ENter"); 

if ((len<6 || len>10) || ! (Character.isLetterOrDigit(firstPassword.charAt(len)))) 

{firstPassword= JOptionPane.showInputDialog("Enter the Correct Format of password"); 
} 


if ((len>=6|| len<=10) || (Character.isLetterOrDigit(firstPassword.charAt(len)))) 
do 
{ 
secondPassword= JOptionPane.showInputDialog("Please enter again the password to confirm"); 
} 
while (!(firstPassword.equals(secondPassword))); 
if (firstPassword.equals(secondPassword)) 
{ 
JOptionPane.showMessageDialog(null,"Accepted"); 
} 

} 
} 

回答

0
int len=firstPassword.length(); 

firstPassword= JOptionPane.showInputDialog("ENter"); 

你的代碼被倒......你需要調用輸入的東西后的長度。

firstPassword= JOptionPane.showInputDialog("ENter"); 
int len=firstPassword.length(); 

嘗試說些什麼......

+0

我糾正that.It不工作,並把我轟出來界exception.I的認爲這是一個錯誤「(Character.isLetterOrDigit(firstPassword.charAt( len)「 – Saru

+0

對不起,現在只是回答...但是,因爲你正在試圖與最後一個位置進行比較 對於你看你的密碼是否有字母或數字,你需要一個cicle For (int i = 0; i