第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

課堂作業(yè)源碼,請指教。

	/**
	?*?生成隨機(jī)字符串并排序
	?*?@param?args
	?*/
	public?void?testStringSort(){
		String?str?=?"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
	
		List<String>?stringList?=?new?ArrayList<String>();
		for(int?i?=?0;i?<?10;i++){
			StringBuilder?sb?=?new?StringBuilder();//創(chuàng)建一個(gè)新的新的字符串對象
//????????	第一次while循環(huán)用來檢查是否產(chǎn)生相同的字符串,如果相同,重新執(zhí)行,不同則添加到stringList中
			do{
				int?stringLength?=?random.nextInt(10);
				//確保隨機(jī)產(chǎn)生的數(shù)字不為0,也就是確保字符串的長度不為0
				if(stringLength?==?0){
					continue;
					}?else?{
						for(int?j?=?0;j?<?stringLength;j++){
							int?num?=?random.nextInt(str.length());//隨機(jī)產(chǎn)生一個(gè)str的索引位置
							sb.append(str.charAt(num));//將str在num位置上的字符增加到sb字符串對象中
							}
						}
				}while(stringList.contains(sb.toString()));
			stringList.add(sb.toString());
			System.out.println("成功添加字符串:?"?+?sb.toString());
			}
		System.out.println("------------排序前-----------");
		for(String?string:stringList)
			System.out.println("包含字符串:"+string);
		Collections.sort(stringList);
		System.out.println("------------排序后-----------");
		for(String?string:stringList)
			System.out.println("包含字符串:"+string);
		}


正在回答

3 回答

當(dāng)stringLength等于0的時(shí)候,執(zhí)行continue,然后判斷循環(huán)條件,條件為假,循環(huán)結(jié)束,空串被添加到List中。建議修改方法:在條件中加一個(gè)判斷。while (stringList.contains(sb.toString())||sb.toString().equals(""))。當(dāng)List中不存在此字符串或者sb為空串的時(shí)候執(zhí)行循環(huán)。

1 回復(fù) 有任何疑惑可以回復(fù)我~

int?num?=?random.nextInt(str.length());這里有問題

應(yīng)該把str.length()改為str.length()-1; ? ?charAt第一個(gè)數(shù)對應(yīng)的是0而不是1

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

蔚然成麟er 提問者

不對啊,有時(shí)候會出現(xiàn)StringIndexOutOfBoundsException這個(gè)異常
2017-03-16 回復(fù) 有任何疑惑可以回復(fù)我~
#2

蔚然成麟er 提問者

還是阿莫西林的方法好使! 在API文檔中是這樣解釋的: public int nextInt()返回下一個(gè)偽隨機(jī)數(shù),它是此隨機(jī)數(shù)生成器的序列中均勻分布的 int 值。nextInt 的常規(guī)協(xié)定是,偽隨機(jī)地生成并返回一個(gè) int 值。所有 232 個(gè)可能 int 值的生成概率(大致)相同。 我寫了兩行代碼測試的過程中,發(fā)現(xiàn)num可以取到0,也就是charAt()能取到字符串的第0個(gè)值。 多謝。
2017-03-16 回復(fù) 有任何疑惑可以回復(fù)我~

運(yùn)行的過程中發(fā)現(xiàn)生成的字符串有空的情況,哪里出現(xiàn)BUG了?

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

課堂作業(yè)源碼,請指教。

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號