android随机生成字符串,Android随机字符串生成器
10 個答案:
答案 0 :(得分:49)
問題是你只處理了一個字符而不是使用循環(huán)。
你可以創(chuàng)建一個字符數(shù)組,其中包含你希望允許在隨機字符串中的所有字符,然后在循環(huán)中從數(shù)組中取一個隨機位置并添加附加到stringBuilder。最后,將stringBuilder轉(zhuǎn)換為字符串。
編輯:
這是我建議的簡單算法:
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轉(zhuǎn)換為字符串。將它轉(zhuǎn)換為char。但是這只會給你一個字符,所以你可以為字符串的長度生成一個隨機數(shù)。然后運行for循環(huán)以生成隨機字符。您也可以定義一個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();
}
此外,您應(yīng)該使用random.compareTo()而不是==
答案 2 :(得分:36)
您需要導(dǎo)入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構(gòu)建文件中使用庫依賴項:
implementation 'org.apache.commons:commons-text:1.6'
答案 8 :(得分:0)
您不能將int轉(zhuǎn)換為String。嘗試:
Random generator = new Random();
String x = String.valueOf (generator.nextInt(96) + 32);
答案 9 :(得分:0)
您可以簡單地將當(dāng)前時間(以毫秒為單位)轉(zhuǎn)換為字符串,例如
import java.util.Calendar;
String newRandomId = String.valueOf(Calendar.getInstance().getTimeInMillis());
Or
String newRandomId = Calendar.getInstance().getTimeInMillis() + "";
//Eg: output: "1602791949543"
總結(jié)
以上是生活随笔為你收集整理的android随机生成字符串,Android随机字符串生成器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全美电影票房排行(截止2010.12.1
- 下一篇: 学习方法论