10 个答案:

答案 0 :(得分:49)

问题是你只处理了一个字符而不是使用循环。

你可以创建一个字符数组,其中包含你希望允许在随机字符串中的所有字符,然后在循环中从数组中取一个随机位置并添加附加到stringBuilder。最后,将stringBuilder转换为字符串。

编辑:

这是我建议的简单算法:

private static final String ALLOWED_CHARACTERS ="0123456789qwertyuiopasdfghjklzxcvbnm";

private static String getRandomString(final int sizeOfRandomString)

{

final Random random=new Random();

final StringBuilder sb=new StringBuilder(sizeOfRandomString);

for(int i=0;i

sb.append(ALLOWED_CHARACTERS.charAt(random.nextInt(ALLOWED_CHARACTERS.length())));

return sb.toString();

}

和Kotlin:

companion object {

private val ALLOWED_CHARACTERS = "0123456789qwertyuiopasdfghjklzxcvbnm"

}

private fun getRandomString(sizeOfRandomString: Int): String {

val random = Random()

val sb = StringBuilder(sizeOfRandomString)

for (i in 0 until sizeOfRandomString)

sb.append(ALLOWED_CHARACTERS[random.nextInt(ALLOWED_CHARACTERS.length)])

return sb.toString()

}

答案 1 :(得分:47)

您的代码存在一些问题。

您无法从int转换为字符串。将它转换为char。但是这只会给你一个字符,所以你可以为字符串的长度生成一个随机数。然后运行for循环以生成随机字符。您也可以定义一个StringBuilder并添加字符,然后使用toString()方法获取随机字符串

示例:

public static String random() {

Random generator = new Random();

StringBuilder randomStringBuilder = new StringBuilder();

int randomLength = generator.nextInt(MAX_LENGTH);

char tempChar;

for (int i = 0; i < randomLength; i++){

tempChar = (char) (generator.nextInt(96) + 32);

randomStringBuilder.append(tempChar);

}

return randomStringBuilder.toString();

}

此外,您应该使用random.compareTo()而不是==

答案 2 :(得分:36)

您需要导入UUID。

这是代码

import java.util.UUID;

id = UUID.randomUUID().toString();

答案 3 :(得分:9)

这就是我如何生成具有所需字符和所需长度的随机字符串

char[] chars1 = "ABCDEF012GHIJKL345MNOPQR678STUVWXYZ9".toCharArray();

StringBuilder sb1 = new StringBuilder();

Random random1 = new Random();

for (int i = 0; i < 6; i++)

{

char c1 = chars1[random1.nextInt(chars1.length)];

sb1.append(c1);

}

String random_string = sb1.toString();

答案 4 :(得分:1)

你可以简单地使用以下方法生成5个字符的随机字符串,它将返回随机字符串的arrayList

public ArrayList generateRandomString() {

ArrayList list = new ArrayList<>();

Random rnd = new Random();

String str = "";

String randomLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

String randomLetterSmall = "abcdefghijklmnopqrstuvwxyz";

for (int n = 0; n < 50; n++) {

str = String.valueOf(randomLetters.charAt(rnd.nextInt(randomLetters.length())));

str += String.valueOf(randomLetterSmall.charAt(rnd.nextInt(randomLetters.length())));

str += String.valueOf(randomLetterSmall.charAt(rnd.nextInt(randomLetters.length())));

str += String.valueOf(randomLetterSmall.charAt(rnd.nextInt(randomLetters.length())));

str += String.valueOf(randomLetterSmall.charAt(rnd.nextInt(randomLetters.length())));

//Copy above line to increase character of the String

list.add(str);

}

Collections.sort(list);

return list;

}

答案 5 :(得分:0)

final String[] Textlist = { "Text1", "Text2", "Text3"};

TextView yourTextView = (TextView)findViewById(R.id.yourTextView);

Random random = new Random();

String randomText = TextList[random.nextInt(TextList.length)];

yourTextView.setText(randomText);

答案 6 :(得分:0)

此功能在kotlin中运行->

import threading

import time

import random

class Consumer:

def __init__(self):

self.data = []

def print(self):

while True:

print(self.data)

time.sleep(1)

class Producer:

def __init__(self, data):

self.data = data

def update(self):

while True:

self.data.append(random.random())

time.sleep(1)

consumer = Consumer()

producer = Producer(consumer.data)

threading.Thread(target=consumer.print).start()

threading.Thread(target=producer.update).start()

答案 7 :(得分:0)

使用org.apache.commons.lang3.RandomStringUtils包快速衬纸。

String randonString = RandomStringUtils.randomAlphanumeric(16);

需要在gradle构建文件中使用库依赖项:

implementation 'org.apache.commons:commons-text:1.6'

答案 8 :(得分:0)

您不能将int转换为String。尝试:

Random generator = new Random();

String x = String.valueOf (generator.nextInt(96) + 32);

答案 9 :(得分:0)

您可以简单地将当前时间(以毫秒为单位)转换为字符串,例如

import java.util.Calendar;

String newRandomId = String.valueOf(Calendar.getInstance().getTimeInMillis());

Or

String newRandomId = Calendar.getInstance().getTimeInMillis() + "";

//Eg: output: "1602791949543"

android随机生成字符串,Android随机字符串生成器相关推荐

  1. java - 随机生成人名/指定位数字符串/手机号 --工具方法

    我是一个B话不多的人 1.随机生成人名/指定位数字符串 package ls.example.test.util;import java.io.*; import java.util.Random; ...

  2. 【PostgreSQL】GIN索引安装与使用 - 全模糊匹配/数组匹配,PG批量插入上万随机生成数据,随机生成字符串/数组

    目录 环境 拓展库安装 生成随机假数据 查询使用GIN索引 GIN索引使用条件 参考 环境 PostgreSQL DBeaver 拓展库安装 打开SQL编辑器: 输入命令运行即可: CREATE EX ...

  3. c语言随机产生大写字母,随机生成指定长度字符字符串(C语言实现)

    相关函数 srand(), rand() 头文件 #include 定义函数 int rand(void) 函数说明 rand()会返回一随机数值,范围在0至RAND_MAX 间.在调用此函数产生随机 ...

  4. 风尚云网前端-js随机生成自定义位随机字符

     风尚云网前端-js随机生成自定义位随机字符 废话不多说: 上代码 // 随机生成随机数randomPassword(size) {var seed = new Array("A" ...

  5. 随机生成10位数的字符串ID

    简述 项目中,有种业务需要当前表中存个另外一个表中的主键ID字段,如果用数据库自增的话,容易出现重复 比如A表主键ID自增1.2.3.....,B表主键ID自增1.2.3.....,A表中有个字段是B ...

  6. 随机验证码如何在html里设置颜色,js随机生成验证码以及随机颜色

    Javascript通过Math.random()随机生成验证码. 代码如下: 随机验证码 .p1{ width:100px; height:30px; border:1px solid black; ...

  7. python彩票生成_python3学习--随机生成密码、随机生成彩票号

    ################随机生成密码##################### 1.写一个函数:函数的功能是生成一批密码,存到文件里面 def gen_password(num): #num ...

  8. JS随机生成ID 以及随机生成坐标

    随着时间来生成不同ID // 随机生成 ID const idStr = Date.now().toString(36) this.itemObj.id = idStrconsole.log(this ...

  9. mysql 随机生成中文名,MySQL随机生成电话号码,邮箱和中文姓名sql

    原本系统中数据量有限,还有很多是英文的,老板演示的时候觉得不专业,需要随机生成一些内容,记录一下sql以便重复利用. 1. 随机座机号码 select concat(rpad(CEIL(RAND()* ...

  10. python随机生成正态分布_随机生成正态分布数据

    http://www.petroleumcloud.cn/pages/620.html 正态分布,又名高斯分布,是一个非常重要的概率分布.在数学.物理及工程等领域以及统计学的许多方面有着重大的影响力. ...

最新文章

  1. python日期时间
  2. Linux下root密码忘记的解决办法
  3. 并发编程之Java内存模型
  4. ios 上传图片失败 小程序_iOS上传图片,就是有这种不一样的操作!
  5. Javascript 中 JSON 与对象 的相互转换
  6. 历史上的昨天和今天(zz)
  7. 万丰科技机器人排名_万丰科技拟“借壳”长春经开
  8. 领英:经济图谱在中国,为人才就业勾画新版图
  9. GraphQL从入门到实战
  10. gps 数据解析-NMEA 0183协议
  11. 计算机主板电源管理线路图,笔记本电源维修方法详解【图文教程】
  12. mysql数据库自动停止_解决mysql数据库自动停止方法
  13. excel表格公式无效、不生效的解决方案及常见问题、常用函数
  14. tensorflow的安装和求解泊松方程
  15. JAVA 面向对象和集合知识点总结
  16. 公积金能付首付吗?你在公积金贷款买房前这些知道吗?
  17. java接口支持ajax,【JavaWeb】jQuery对Ajax的支持
  18. 学习c语言的方法类比,类比法在C语言程序设计教学中运用.doc
  19. 图形学基础 (二)关于旋转
  20. 《数字恐龙》为了一次配种,他们努力了半年

热门文章

  1. 1到20的阶乘和是多少 php,20的阶乘(1到20的阶乘和结果)
  2. 闲谈:渗透测试-红队版
  3. 超像素分割 SLIC算法 使用示例
  4. C语言队列的基本实现
  5. CAD制图初学入门:使用CAD切换窗口
  6. java进度条代码,java进度条代码该怎么编写?
  7. java控制台进度_java进度条:控制台输出百分比示例代码
  8. windows系统c语言编译器安装
  9. 宿舍管理系统(简单版)
  10. xp系统怎么进pe修改计算机名,U盘装xp_教您怎样用u盘装xp系统