1. 程式人生 > >要求根據RandomStr.java:使用類型轉換生成六位驗證字符串,示例程序每次運 行時,都會生成不同的字符串。

要求根據RandomStr.java:使用類型轉換生成六位驗證字符串,示例程序每次運 行時,都會生成不同的字符串。

str ima method edi 驗證碼 不同的 [] 類型 直接

1.程序設計思想驗證碼

①定義一個字符串變量來保存隨機生成的。

②利用循環產生六位隨機數,在產生每一位時將其轉換為char類型並寫在字符串後面。

③利用對話框顯示生成的驗證碼,並提示用戶輸入驗證碼。

④顯示用戶是否驗證成功。

2.程序流程圖

技術分享

3.源程序代碼

import java.util.Random;
import javax.swing.JOptionPane;  // import class JOptionPane
public class VerificationCode {

    /**
     * @param args
     */
    public static
void main(String[] args) { // TODO Auto-generated method stub String code="";//定義一個新的空字符串 for(int i=1;i<=6;i++) { Random random=new Random(); int character=random.nextInt(26)+97;//隨機產生97-123之間的數 code=code+(char)character;//將產生的數轉化為char類型為小寫字母
} String input=JOptionPane.showInputDialog(code+"\n"+"請輸入驗證碼:");//顯示驗證碼,並提示用戶輸入驗證碼 if(input.equals(code))//判斷驗證碼是否正確 { JOptionPane.showMessageDialog(null,"驗證碼正確,驗證成功!","Results",JOptionPane.PLAIN_MESSAGE ); } else { JOptionPane.showMessageDialog(
null,"驗證碼錯誤,驗證失敗!","Results",JOptionPane.PLAIN_MESSAGE ); } } }

4.結果截圖

技術分享

技術分享

技術分享

技術分享

5.實驗總結

本題中的關鍵是對類型轉換的把握,生成隨機字符串的方法有很多,本題考查對RandomStr.java以及類型轉換的使用。我在判斷隨機生成的字符串與用戶輸入的驗證碼是否一樣時出錯,我的代碼為code==input,則出現無論輸入什麽驗證碼都會顯示驗證成功,後來經過查詢,發現是判斷時出錯,因為在C++中直接判斷就行,而在Java中要用到equals函數來判斷。第二個錯誤則是粗心所致,我將input.equals(code)寫成了input.equals(input),則出現無論輸入什麽驗證碼也都會顯示驗證成功。

除此之外,程序的一個缺點是只能產生全是小寫字母或者全是大寫字母,再或者全是數字組成的驗證碼,不能產生小寫字母、大寫字母、數字隨機結合的驗證碼。

要求根據RandomStr.java:使用類型轉換生成六位驗證字符串,示例程序每次運 行時,都會生成不同的字符串。