欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java如何生成4位、6位隨機(jī)數(shù)短信驗證碼(高效實現(xiàn))

 更新時間:2022年12月29日 10:44:28   作者:liberg  
這篇文章主要介紹了Java如何生成4位、6位隨機(jī)數(shù)短信驗證碼(高效實現(xiàn)),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Java生成4位、6位隨機(jī)數(shù)短信驗證碼

生成短信驗證碼問題,本質(zhì)是產(chǎn)生某個范圍內(nèi)隨機(jī)數(shù)的問題。

比如,要生成6位短信驗證碼xxxxxx:

  • 6位數(shù)最大到999999;
  • 同時為了防止位數(shù)少于6位,導(dǎo)致高位補0的麻煩和尷尬,我們可以特別規(guī)定,最小值為最小的6位數(shù),即100000;

這樣問題就變成了:產(chǎn)生[100000, 999999]范圍內(nèi)的隨機(jī)數(shù)的問題。

Java隨機(jī)數(shù)

由于Java中Random對象的nextInt(n)方法產(chǎn)生的是[0, n-1)范圍內(nèi)的隨機(jī)數(shù)。

因此要產(chǎn)生[m, n]范圍內(nèi)的隨機(jī)數(shù)就是: m + randObj.nextInt(n-m+1)

參考代碼

Random randObj = new Random();
// 生成6位隨機(jī)驗證碼
public String generateCode() {
? ? return Integer.toString(100000 + randObj.nextInt(900000));
}
// 生成4位隨機(jī)驗證碼
public String generateCode4() {
? ? return Integer.toString(1000 + randObj.nextInt(9000));
}

Java隨機(jī)位數(shù)的驗證碼的生成

生活中的驗證碼隨處可見,尤其是在登錄賬號密碼時,使用的尤為多。掌握這個方法無論對學(xué)習(xí)還是工作都是很有幫助的。

思路整理

生成由數(shù)字、大寫字母和小寫字母隨機(jī)組成的字符串。

1.我們需要創(chuàng)建一個方法,在方法內(nèi)實現(xiàn)隨機(jī)字母的生成,方便調(diào)用。

2.由于要生成的驗證碼的位數(shù)不確定,可能是4位,5位,6位。因此我們需要使用for循環(huán)語句,

進(jìn)一步思考由于存在三種狀態(tài),數(shù)字+大寫字母+小寫字母。判斷這三種狀態(tài),最好的方法是使用switch。

3.我們在生成隨機(jī)數(shù)字或字符時需要使用random的一個方法,不了解random的同學(xué)可以去菜鳥教程或博客上搜索,它從屬于Math,這里使用的是random中的 .nextInt()方法。

代碼部分:

關(guān)于驗證碼位數(shù),修改n即可。

不仔細(xì)的同學(xué)注意可能出現(xiàn)的報錯情況

1.類名取用Random 導(dǎo)致出錯,修改類名即可。

2.code += ch;即是  code = code + ch;

3.A對應(yīng)的ACll 碼為65  a對應(yīng)的為97;

4.注意int 和 String 之間的強(qiáng)轉(zhuǎn);

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解基于redis實現(xiàn)分布式鎖

    詳解基于redis實現(xiàn)分布式鎖

    系統(tǒng)的不斷擴(kuò)大,分布式鎖是最基本的保障。與單機(jī)的多線程不一樣的是,分布式跨多個機(jī)器。線程的共享變量無法跨機(jī)器。本文將介紹基于redis實現(xiàn)分布式鎖。
    2021-06-06
  • JAVA返回PDF文件流并進(jìn)行下載的實現(xiàn)方法

    JAVA返回PDF文件流并進(jìn)行下載的實現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于JAVA返回PDF文件流并進(jìn)行下載的實現(xiàn)方法,PDF文件流下載是通過HTTP協(xié)議將服務(wù)器上的PDF文件以流的方式發(fā)送給客戶端,供客戶端保存到本地磁盤或直接在瀏覽器中打開,需要的朋友可以參考下
    2024-02-02
  • SpringCloud與Consul集成實現(xiàn)負(fù)載均衡功能

    SpringCloud與Consul集成實現(xiàn)負(fù)載均衡功能

    負(fù)載均衡基本概念有:實服務(wù)、實服務(wù)組、虛服務(wù)、調(diào)度算法、持續(xù)性等,其常用應(yīng)用場景主要是服務(wù)器負(fù)載均衡,鏈路負(fù)載均衡。這篇文章主要介紹了SpringCloud與Consul集成實現(xiàn)負(fù)載均衡 ,需要的朋友可以參考下
    2018-09-09
  • java中并發(fā)Queue種類與各自API特點以及使用場景說明

    java中并發(fā)Queue種類與各自API特點以及使用場景說明

    這篇文章主要介紹了java中并發(fā)Queue種類與各自API特點以及使用場景說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Spring Boot實現(xiàn)文件上傳示例代碼

    Spring Boot實現(xiàn)文件上傳示例代碼

    本篇文章主要介紹了Spring Boot實現(xiàn)文件上傳示例代碼,可以實現(xiàn)單文件和多文件的上傳,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • 通過jxl.jar 讀取、導(dǎo)出excel的實例代碼

    通過jxl.jar 讀取、導(dǎo)出excel的實例代碼

    通過jxl.jar 讀取、導(dǎo)出excel的實例代碼,需要的朋友可以參考一下
    2013-03-03
  • Maven dependencyManagement元素標(biāo)簽的具體使用

    Maven dependencyManagement元素標(biāo)簽的具體使用

    在Maven中dependencyManagement的作用其實相當(dāng)于一個對所依賴jar包進(jìn)行版本管理的管理器,本文主要介紹了Maven dependencyManagement元素標(biāo)簽的具體使用,感興趣的可以了解一下
    2024-03-03
  • java編程之基于SpringBoot框架實現(xiàn)掃碼登錄

    java編程之基于SpringBoot框架實現(xiàn)掃碼登錄

    本文將介紹基于SpringBoot + Vue + Android實現(xiàn)的掃碼登錄demo的總體思路,文中附含詳細(xì)示例代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • springboot開啟mybatis駝峰命名自動映射的三種方式

    springboot開啟mybatis駝峰命名自動映射的三種方式

    這篇文章給大家總結(jié)springboot開啟mybatis駝峰命名自動映射的三種方式,文章并通過代碼示例給大家介紹的非常詳細(xì),具有一定的參考價值,需要的朋友可以參考下
    2024-02-02
  • Java實現(xiàn)雙色球抽獎隨機(jī)算法示例

    Java實現(xiàn)雙色球抽獎隨機(jī)算法示例

    本篇文章主要介紹了Java實現(xiàn)雙色球抽獎隨機(jī)算法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06

最新評論