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

Java隨機(jī)生成字符串的四種方式例子

 更新時間:2023年10月10日 11:20:26   作者:海深不見鯨  
這篇文章主要給大家介紹了關(guān)于Java隨機(jī)生成字符串的四種方式,隨機(jī)數(shù)在實(shí)際中使用很廣泛,比如要隨即生成一個固定長度的字符串、數(shù)字,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下

java.util.UUID 類可用于生成UUID, 它的static randomUUID方法返回一個32個字符的字符串。

import java.util.UUID;
public class RandomStringGenerator {
    public static void main(String[] args) {
        String randomString = usingUUID();
        System.out.println("Random string is: " + randomString);
        System.out.println("Random string of 8 characters is: "
            + randomString.substring(0, 8));
    }
    static String usingUUID() {
        UUID randomUUID = UUID.randomUUID();
        return randomUUID.toString().replaceAll("-", "");
    }
}

注意randomUUID方法生成的字符串包含“-”。上面的示例通過使用空字符串替換了。

以上程序輸出為:

Random string is: 923ed6ec4d04452eaf258ec8a4391a0f
Random string of 8 characters is: 923ed6ec

使用Math類

下面的算法可以使用這種方法生成一個固定長度的隨機(jī)字符串。

  • 初始化一個空字符串以保存結(jié)果。
  • 創(chuàng)建大小寫字母和數(shù)字的組合,以創(chuàng)建一組超級字符。
  • 啟動一個循環(huán),該循環(huán)的count等于所需的隨機(jī)字符串長度。
  • 在每次迭代中,生成一個介于0和超集長度之間的隨機(jī)數(shù)。
  • 在步驟4中生成的數(shù)字索引處從步驟2中的字符串中提取字符,并將其添加到步驟1中的字符串中。
  • 循環(huán)完成后,步驟1中的字符串將是一個隨機(jī)字符串。

示例代碼:

import java.util.Math;
public class RandomStringGenerator {
    public static void main(String[] args) {
        String randomString = usingMath(10);
        System.out.println("Random string is: " + randomString);
    }
    static String usingMath(int length) {
        String alphabetsInUpperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        String alphabetsInLowerCase = "abcdefghijklmnopqrstuvwxyz";
        String numbers = "0123456789";
        // create a super set of all characters
        String allCharacters = alphabetsInLowerCase + alphabetsInUpperCase + numbers;
        // initialize a string to hold result
        StringBuffer randomString = new StringBuffer();
        // loop for 10 times
        for (int i = 0; i < length; i++) {
            // generate a random number between 0 and length of all characters
            int randomIndex = (int)(Math.random() * allCharacters.length());
            // retrieve character at index and add it to result
            randomString.append(allCharacters.charAt(randomIndex));
        }
        return randomString.toString();
    }
}

以上程序輸出為:

Random string is: kqNG2SYHeF
Random string is: lCppqqUg8P
Random string is: GGiFiEP5Dz

這種方法使您能夠更好地控制需要包含在隨機(jī)字符串中的字符。例如,如果您不想要數(shù)字,那么就從超集中刪除它們。如果您想要特殊字符,那么就在超集中添加一組特殊字符。

使用Random類

此方法與Math方法類似,即創(chuàng)建所有字符的超集,生成一個隨機(jī)索引,并使用該索引處的字符創(chuàng)建最終字符串。

這種方法使用java.util.Random 類生成隨機(jī)索引。

示例代碼:

import java.util.Random;
public class RandomStringGenerator {
    public static void main(String[] args) {
        String randomString = usingRandom(10);
        System.out.println("Random string is: " + randomString);
    }
    static String usingRandom(int length) {
        String alphabetsInUpperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        String alphabetsInLowerCase = "abcdefghijklmnopqrstuvwxyz";
        String numbers = "0123456789";
        // create a super set of all characters
        String allCharacters = alphabetsInLowerCase + alphabetsInUpperCase + numbers;
        // initialize a string to hold result
        StringBuffer randomString = new StringBuffer();
        // loop for 10 times
        for (int i = 0; i < length; i++) {
            // generate a random number between 0 and length of all characters 
            int randomIndex = random.nextInt(allCharacters.length());
            // retrieve character at index and add it to result
            randomString.append(allCharacters.charAt(randomIndex));
        }
        return randomString.toString();
   }
}

以上程序輸出為:

Random string is: TycOBOxITs
Random string is: 7LLWVbg0ps
Random string is: p6VyqdO6bT

您還可以使用java.util.SecureRandom類生成一個隨機(jī)整數(shù)。它是java.util.Random的一個子類。

使用RandomStringUtils類

Apache Commons Lang庫有一個org.apache.commons.lang.RandomStringUtils類,該類具有生成固定長度的隨機(jī)字符串的方法。

它的方法可以生成只包含字母(隨機(jī)字母)、數(shù)字(隨機(jī)數(shù)字)或兩者(隨機(jī)字母數(shù)字)的隨機(jī)字符串。

所有這些方法都接受一個整數(shù)參數(shù),該參數(shù)表示它們將生成的字符串的長度。

示例代碼:

import org.apache.commons.lang.RandomStringUtils;
public class RandomStringGenerator {
    public static void main(String[] args) {
        // generate a random string of 10 alphabets
        String randomString = RandomStringUtils.randomAlphabetic(10);
        System.out.println("Random string of 10 alphabets: " + randomString);
        randomString = RandomStringUtils.randomNumeric(10);
        System.out.println("Random string of 10 numbers: " + randomString);
        randomString = RandomStringUtils.randomAlphanumeric(10);
        System.out.println("Random string of 10 alphanumeric characters: " + randomString);
   }
}

以上程序輸出為:

Random string of 10 alphabets: OEfadIYfFm
Random string of 10 numbers: 1639479195
Random string of 10 alphanumeric characters: wTQRMXrNY9

該類還有一個方法random,該方法接受一個整數(shù)(即要生成的字符串的長度)和一個char數(shù)組。生成的隨機(jī)字符串僅由該數(shù)組中的字符組成。

通過根據(jù)構(gòu)建工具添加以下依賴項(xiàng),可以將Apache Commons Lang包含到您的項(xiàng)目中。

<dependency>
   <groupId>org.apache.commons</groupId>
   <artifactId>commons-lang3</artifactId>
   <version>3.9</version>
</dependency>

總結(jié) 

到此這篇關(guān)于Java隨機(jī)生成字符串的四種方式的文章就介紹到這了,更多相關(guān)Java隨機(jī)生成字符串內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring Cache擴(kuò)展功能實(shí)現(xiàn)過程解析

    Spring Cache擴(kuò)展功能實(shí)現(xiàn)過程解析

    這篇文章主要介紹了Spring Cache擴(kuò)展功能實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • SpringBoot整合FastDFS中間件實(shí)現(xiàn)文件分布管理

    SpringBoot整合FastDFS中間件實(shí)現(xiàn)文件分布管理

    FastDFS是一個開源的輕量級分布式文件系統(tǒng),它對文件進(jìn)行管理,功能包括:文件存儲、文件同步、文件上傳、文件下載等,解決了大容量存儲和負(fù)載均衡的問題,本文介紹了SpringBoot整合FastDFS中間件實(shí)現(xiàn)文件分布管理,需要的朋友可以參考下
    2024-08-08
  • Java數(shù)據(jù)結(jié)構(gòu)之簡單鏈表的定義與實(shí)現(xiàn)方法示例

    Java數(shù)據(jù)結(jié)構(gòu)之簡單鏈表的定義與實(shí)現(xiàn)方法示例

    這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之簡單鏈表的定義與實(shí)現(xiàn)方法,簡單描述了鏈接的概念、原理,并結(jié)合實(shí)例形式分析了java定義與使用鏈表的相關(guān)步驟與操作技巧,需要的朋友可以參考下
    2017-10-10
  • Java實(shí)戰(zhàn)之仿天貓商城系統(tǒng)的實(shí)現(xiàn)

    Java實(shí)戰(zhàn)之仿天貓商城系統(tǒng)的實(shí)現(xiàn)

    這篇文章主要介紹了如何利用Java制作一個基于SSM框架的迷你天貓商城系統(tǒng),文中采用的技術(shù)有JSP、Springboot、SpringMVC、Spring等,需要的可以參考一下
    2022-03-03
  • SpringBoot參數(shù)校驗(yàn)Validator框架詳解

    SpringBoot參數(shù)校驗(yàn)Validator框架詳解

    Validator框架就是為了解決開發(fā)人員在開發(fā)的時候少寫代碼,提升開發(fā)效率,Validator專門用來進(jìn)行接口參數(shù)校驗(yàn),今天通過本文給大家介紹SpringBoot參數(shù)校驗(yàn)Validator框架,感興趣的朋友一起看看吧
    2022-06-06
  • Spring?Boot如何處理@Resource示例分析

    Spring?Boot如何處理@Resource示例分析

    這篇文章主要為大家介紹了Spring?Boot如何處理@Resource示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Springboot?-?Fat?Jar示例詳解

    Springboot?-?Fat?Jar示例詳解

    這篇文章主要介紹了Springboot?-?Fat?Jar詳解,Spring?Boot內(nèi)嵌容器,通過java?-jar命令便可以直接啟動應(yīng)用,今天帶著大家探索FAT?JAR啟動的背后原理,需要的朋友可以參考下
    2023-02-02
  • httpclient的CPool定義方法詳解

    httpclient的CPool定義方法詳解

    這篇文章主要為大家介紹了httpclient的CPool定義方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • 基于Eclipse中SVN圖標(biāo)不顯示的解決方法

    基于Eclipse中SVN圖標(biāo)不顯示的解決方法

    本篇文章是對Eclipse中SVN圖標(biāo)不顯示的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • 使用Spring MVC實(shí)現(xiàn)雙向數(shù)據(jù)綁定

    使用Spring MVC實(shí)現(xiàn)雙向數(shù)據(jù)綁定

    Spring MVC是一個廣泛用于構(gòu)建Java Web應(yīng)用程序的框架,它提供了眾多功能,包括雙向數(shù)據(jù)綁定,在這篇文章中,我們將向Java新手介紹如何使用Spring MVC實(shí)現(xiàn)雙向數(shù)據(jù)綁定,以及為什么這個特性如此重要,需要的朋友可以參考下
    2024-01-01

最新評論

龙陵县| 稻城县| 宁蒗| 隆林| 宁远县| 宾川县| 碌曲县| 新巴尔虎左旗| 台中县| 浦东新区| 莫力| 白银市| 大城县| 繁昌县| 永川市| 冷水江市| 嘉鱼县| 南靖县| 梧州市| 莱州市| 望谟县| 游戏| 娄烦县| 辽阳市| 延长县| 青河县| 托里县| 宁都县| 天台县| 福海县| 三河市| 灵山县| 麟游县| 屏边| 江都市| 炉霍县| 黎城县| 上虞市| 习水县| 志丹县| 广灵县|