java.util.UUID 类可用于生成UUID, 它的static randomUUID方法返回一个32个字符的字符串。 import java.util.UUID;public class RandomStringGenerator
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: 923ed6ec4d04452eaf258ec8a4391a0fRandom string of 8 characters is: 923ed6ec
下面的算法可以使用这种方法生成一个固定长度的随机字符串。
示例代码:
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: kqNG2SYHeFRandom string is: lCppqqUg8PRandom string is: GGiFiEP5Dz
这种方法使您能够更好地控制需要包含在随机字符串中的字符。例如,如果您不想要数字,那么就从超集中删除它们。如果您想要特殊字符,那么就在超集中添加一组特殊字符。
此方法与Math方法类似,即创建所有字符的超集,生成一个随机索引,并使用该索引处的字符创建最终字符串。
这种方法使用java.util.Random 类生成随机索引。
示例代码:
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: TycOBOxITsRandom string is: 7LLWVbg0psRandom string is: p6VyqdO6bT
您还可以使用java.util.SecureRandom类生成一个随机整数。它是java.util.Random的一个子类。
Apache Commons Lang库有一个org.apache.commons.lang.RandomStringUtils类,该类具有生成固定长度的随机字符串的方法。
它的方法可以生成只包含字母(随机字母)、数字(随机数字)或两者(随机字母数字)的随机字符串。
所有这些方法都接受一个整数参数,该参数表示它们将生成的字符串的长度。
示例代码:
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: OEfadIYfFmRandom string of 10 numbers: 1639479195Random string of 10 alphanumeric characters: wTQRMXrNY9
该类还有一个方法random,该方法接受一个整数(即要生成的字符串的长度)和一个char数组。生成的随机字符串仅由该数组中的字符组成。
通过根据构建工具添加以下依赖项,可以将Apache Commons Lang包含到您的项目中。
org.apache.commons commons-lang3 3.9
来源地址:https://blog.csdn.net/JavaBoy_XZL/article/details/129008018
--结束END--
本文标题: Java随机生成字符串的4种方式
本文链接: https://www.lsjlt.com/news/400475.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-03
2024-04-03
2024-04-01
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0