亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

生成隨機字符串的2種方法,請多多指教,還能不能繼續優化

// 方法一利用ASCII碼:生成10個隨機字符串,且長度不大于10,然后添加進List集合

public void testSort2() {

List<String> list = new ArrayList<>();

Random random = new Random();

int temp = 0;

for (int k = 0; k < 10; k++) {

int n;

do {

n = random.nextInt(11);

} while (n == 0);

String str = "";

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

do {

temp = random.nextInt(123);

} while (temp < 48 || (temp > 57) && (temp < 65) || (temp > 90) && (temp < 97));

char ch = (char) temp;

str += ch;

}

list.add(str);

}

System.out.println("排序前:" + list);

Collections.sort(list);

System.out.println("排序后:" + list);

// Collections.sort(list);

// for (String str : list) {

// System.out.print(str + " ");

// }

}


// 方法二利用StringBuilder類:生成10個隨機字符串,且長度不大于10,然后添加進List集合

public void testSort3() {

List<String> list = new ArrayList<>();

Random random = new Random();

String strList="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

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

StringBuilder str = new StringBuilder();

int n;

do {

n = random.nextInt(11);

} while (n == 0);

do {

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

int temp = random.nextInt(62);

str.append(strList.charAt(temp));

}

} while (list.contains(str.toString()));

list.add(str.toString());


}

System.out.println("排序前:" + list);

Collections.sort(list);

System.out.println("排序后:" + list);


}


正在回答

5 回答

小白只看得懂第二種方法,大神活學活用,深感慚愧哎、小弟受教了。奈何腦容量太小(∩_∩)別說如答主運用自如了,知識點都還沒整理過來!佩服佩服!

0 回復 有任何疑惑可以回復我~

int n;

do {

n = random.nextInt(11);

} while (n == 0);

String str = "";

for (int i = 0; i < n; i++)?


第一個方法 這一段的do-while 可以刪掉 ?把or循環的int i=0 改成i=-1


1 回復 有任何疑惑可以回復我~

看錯了不好意思 == 我自己弄錯

0 回復 有任何疑惑可以回復我~

好像和老師的要求有一點偏差第二種方法

0 回復 有任何疑惑可以回復我~

寫的不錯,這么基礎的代碼也沒必要再繼續優化了

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

生成隨機字符串的2種方法,請多多指教,還能不能繼續優化

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號