最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

比如,要生成6位短信驗(yàn)證碼xxxxxx:

  • 6位數(shù)最大到999999;
  • 同時為了防止位數(shù)少于6位,導(dǎo)致高位補(bǔ)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ī)驗(yàn)證碼
public String generateCode() {
? ? return Integer.toString(100000 + randObj.nextInt(900000));
}
// 生成4位隨機(jī)驗(yàn)證碼
public String generateCode4() {
? ? return Integer.toString(1000 + randObj.nextInt(9000));
}

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

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

思路整理

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

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

2.由于要生成的驗(yàn)證碼的位數(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)于驗(yà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)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在Spring Boot中實(shí)現(xiàn)文件上傳與管理的操作

    在Spring Boot中實(shí)現(xiàn)文件上傳與管理的操作

    在 Spring Boot 中實(shí)現(xiàn)文件上傳與管理非常簡單,通過配置文件上傳、創(chuàng)建文件上傳、下載、列表和刪除接口,我們可以輕松地處理文件操作,結(jié)合前端頁面,可以提供一個完整的文件管理系統(tǒng),這篇文章主要介紹了在Spring Boot中實(shí)現(xiàn)文件上傳與管理,需要的朋友可以參考下
    2024-07-07
  • logback的UNDEFINED_PROPERTY屬性源碼執(zhí)行流程解讀

    logback的UNDEFINED_PROPERTY屬性源碼執(zhí)行流程解讀

    這篇文章主要為大家介紹了logback的UNDEFINED_PROPERTY屬性源碼執(zhí)行流程解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • Spring Boot應(yīng)用事件監(jiān)聽示例詳解

    Spring Boot應(yīng)用事件監(jiān)聽示例詳解

    這篇文章主要給大家介紹了關(guān)于Spring Boot應(yīng)用事件監(jiān)聽的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • 淺談springboot項(xiàng)目中定時任務(wù)如何優(yōu)雅退出

    淺談springboot項(xiàng)目中定時任務(wù)如何優(yōu)雅退出

    這篇文章主要介紹了淺談springboot項(xiàng)目中定時任務(wù)如何優(yōu)雅退出?具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 14個編寫Spring MVC控制器的實(shí)用小技巧(吐血整理)

    14個編寫Spring MVC控制器的實(shí)用小技巧(吐血整理)

    這篇文章主要介紹了14個編寫Spring MVC控制器的實(shí)用小技巧(吐血整理),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • MyBatis Log 插件無法顯示SQL語句的原因解析

    MyBatis Log 插件無法顯示SQL語句的原因解析

    MyBatis Log是IDEA一款下載量非常高的插件,該插件可以對控制臺打印的日志進(jìn)行解析,然后將對應(yīng)的SQL語句整理并拼接好對應(yīng)的參數(shù),非常方便。這篇文章給大家介紹MyBatis Log 插件無法顯示SQL語句的原因,感興趣的朋友跟隨小編一起看看吧
    2020-09-09
  • SpringBoot項(xiàng)目接入MQTT的詳細(xì)指南

    SpringBoot項(xiàng)目接入MQTT的詳細(xì)指南

    MQTT是一種輕量級的消息傳輸協(xié)議,特別適用于物聯(lián)網(wǎng)(IoT)場景,具有低帶寬、高延遲網(wǎng)絡(luò)環(huán)境下的優(yōu)勢,SpringBoot作為流行的 Java開發(fā)框架,能夠方便地與MQTT集成,實(shí)現(xiàn)高效的消息通信,本文將詳細(xì)介紹如何在SpringBoot項(xiàng)目中接入MQTT,需要的朋友可以參考下
    2025-03-03
  • java對接Modbus協(xié)議代碼示例

    java對接Modbus協(xié)議代碼示例

    Modbus是一種串行通信協(xié)議,Modbus已經(jīng)成為工業(yè)領(lǐng)域通信協(xié)議的業(yè)界標(biāo)準(zhǔn),并且現(xiàn)在是工業(yè)電子設(shè)備之間常用的連接方式,這篇文章主要給大家介紹了關(guān)于java對接Modbus協(xié)議的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • Java 和 Scala 如何調(diào)用變參

    Java 和 Scala 如何調(diào)用變參

    這篇文章主要介紹了Java 和 Scala 如何調(diào)用變參,幫助大家更好的理解和學(xué)習(xí)Java與Scala,感興趣的朋友可以了解下
    2020-09-09
  • Java多線程面試題之交替輸出問題的實(shí)現(xiàn)

    Java多線程面試題之交替輸出問題的實(shí)現(xiàn)

    本文主要介紹了Java多線程面試題之交替輸出問題的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評論

垫江县| 新乡市| 沾益县| 德州市| 沧州市| 张家港市| 措勤县| 德清县| 沐川县| 天峨县| 剑河县| 广灵县| 双鸭山市| 文成县| 望城县| 洞头县| 河源市| 永吉县| 洛宁县| 通江县| 临潭县| 高阳县| 宝应县| 桑植县| 特克斯县| 合肥市| 建宁县| 色达县| 洛宁县| 汉沽区| 伊金霍洛旗| 六枝特区| 乐平市| 班玛县| 瑞昌市| 衡东县| 双桥区| 淳安县| 翁源县| 招远市| 巴南区|