本文目錄一覽:
- 1、java隨機生成字符串
- 2、Java如何生成隨機字符串
- 3、java中,我想隨機獲取不重複的字符串?應該怎麼辦?
- 4、java中如何產生一個16位數字組成的隨機字符串?謝謝各位了
- 5、java實現輸出指定長度的隨機字符(大小寫字母和數字)遇到問題?
- 6、java如何定義一個以字母開頭的隨機字符串
java隨機生成字符串
代碼如下:
import java.util.Random;
public class Demo {
public static void main(String args[]){
Demo demo = new Demo();
System.out.println(demo.getRandomString(20));
}
public static String getRandomString(int length) {
StringBuffer buffer = new StringBuffer(“0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”);
StringBuffer sb = new StringBuffer();
Random random = new Random();
int range = buffer.length();
for (int i = 0; i length; i ++) {
sb.append(buffer.charAt(random.nextInt(range)));
}
return sb.toString();
}
}
代碼解讀:
調用getRandomString()方法時的length參數為要返回的隨機字符串的長度。
StringBuffer buffer = new StringBuffer(“0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”);
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
此段字符串代表要出現的字符還可以是其他字符
如:- + = * 。.等等
Java如何生成隨機字符串
import java.util.Random;
public class Stat {
public static void main(String[] args) {
// Math.random() 獲取0~1之間的double類型數值
int num = (int)(Math.random()*100); // 獲取0~100之間的整數
System.out.println(num);
System.out.println(getRandomString(12));
}
// 獲取隨機字符串
public static String getRandomString(int length) { // length 字符串長度
StringBuffer buffer = new StringBuffer(“0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”);
StringBuffer sb = new StringBuffer();
Random r = new Random();
int range = buffer.length();
for (int i = 0; i length; i ++) {
sb.append(buffer.charAt(r.nextInt(range)));
}
return sb.toString();
}
}
java中,我想隨機獲取不重複的字符串?應該怎麼辦?
1.先確定字符串的長度;
2.再確定字符串包括哪些字符;//這樣可以確定字符的ASCII範圍
3.然後就有很多方法去隨機獲取字符:
把字符存放在一個Map中的value中,如:map.put(1,”字符1″);map.put(2,”字符2″);
map.put(3,”字符3″);一次類推,通過Math.random()*字符的個數,取整就可以得到key值,
map.get(key),value不為null,然後在map中刪除這個key-value,可以設置map.put(key,null);
循環到字符串的長度為需要的長度。
具體一種方法的代碼:
import java.util.HashMap;
import java.util.Map;
public class RandomStr {
public static void main(String[] args) {
for(int i=0; i 10; i++){//測試10次產生隨機不重複字符串
generateRandomStr(5);
}
}
/**
* 產生不重複的隨機字符串
* @param len 生成字符串的長度
* @return
*/
public static String generateRandomStr(int len){
String strRange = “0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”;//字符串範圍,根據自己的需求確定
MapString, String tmp = new HashMapString, String();
for(int i=0; istrRange.length(); i++){
tmp.put(i+””,strRange.charAt(i)+””);
}
StringBuffer result=new StringBuffer();
for(int i=0; ilen; i++){
String key = (int)(Math.random()*(strRange.length()-i))+””;
result.append(tmp.get(key));
tmp.remove(key);
tmp.put(key, tmp.get((strRange.length()-i-1)+””));//拿最後一個字符填充刪除的位置key-value
}
System.out.println(result);
return result.toString();
}
}
java中如何產生一個16位數字組成的隨機字符串?謝謝各位了
方法如下:
Random ran=new random();
boolean flag=true;
while(flag){
int a=ran.nextInt(99999999);
int b=ran.nextInt(99999999);
long c=a*100000000L+b;
if(c1000000000000000Lc9999999999999999L){
flag=false;
c1=c;
String num=String.valueOf(c1);
}
}
Java生成隨機字符串的兩種方式:
1、生成的字符串每個位置都有可能是str中的一個字母或數字,需要導入的包是import java.util.Random;
//length用戶要求產生字符串的長度。
public static String getRandomString(int length){
String str=”abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789″;
Random random=new Random();
StringBuffer sb=new StringBuffer();
for(int i=0;ilength;i++){
int number=random.nextInt(62);
sb.append(str.charAt(number));
}
return sb.toString();
}
2、可以指定某個位置是a-z、A-Z或是0-9,需要導入的包是import java.util.Random;
//可以指定字符串的某個位置是什麼範圍的值。
public static String getRandomString2(int length){
Random random=new Random();
StringBuffer sb=new StringBuffer();
for(int i=0;ilength;i++){
int number=random.nextInt(3);
long result=0;
switch(number){
case 0:
result=Math.round(Math.random()*25+65);
sb.append(String.valueOf((char)result));
break;
case 1:
result=Math.round(Math.random()*25+97);
sb.append(String.valueOf((char)result));
break;
case 2:
sb.append(String.valueOf(new Random().nextInt(10)));
break;
}
}
return sb.toString();
}
java實現輸出指定長度的隨機字符(大小寫字母和數字)遇到問題?
程序輸出錯誤的原因(見圖)
改正後的程序如下(見圖,改動的地方見注釋)
其實可以簡化程序如下(見圖)
java如何定義一個以字母開頭的隨機字符串
需要創建生成器的實例,我們可以使用RandomStringGenerator.Builder()類build()方法。生成器類還可以幫助我們配置生成器的屬性。在調用build()方法之前,我們可以使用以下方法設置構建器的屬性:withinRange()指定在生成的字符串中允許的最小和最大代碼點。filteredBy()將生成的字符串中的字符限制為與至少提供的謂詞之一匹配的字符。這樣即可將java定義一個以字母開頭的隨機字符串。
原創文章,作者:VQBA,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/137535.html