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

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

大家幫忙看下我寫的問題在哪,為什么運行出錯

	public?void?testSort3(){
		List?<String>?stringList?=?new?ArrayList<String>();
		Random?random?=?new?Random();
		String?allPossible="QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm";
			
		for(int?i=0;i<3;i++){??????
			StringBuffer?s=new?StringBuffer();
		????int?k=random.nextInt(10);????//隨機決定字符串的長度
		????for(int?j=0;j<k;j++){
			????char?c=s.charAt(random.nextInt(allPossible.length()));
			????s.append(c);?????????????//追加到s之后
		????}
		????String?str=s.toString();
		????stringList.add(str);
		}
		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);
		}
	}


正在回答

1 回答

同學你第10行:s.charAt(random.nextInt(allPossible.length()))寫錯了,s是字符緩沖區啊,你這句是在找什么~~應該是allPossible.charAt(random.nextInt(allPossible.length()))

另外其中的?random.nextInt(allPossible.length())?最好改成random.nextInt(allPossible.length()-1),因為charAt尋找的下標是從0~length()-1,雖然隨機函數取到最后的length()這個數的幾率不大,但是一旦隨機到最后的這個數了就會出bug,所以最后應該改成allPossible.charAt(random.nextInt(allPossible.length()-1))~~已運行,其他的地方應該沒錯了,如果有什么問題歡迎指正~~~

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

舉報

0/150
提交
取消

大家幫忙看下我寫的問題在哪,為什么運行出錯

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

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

幫助反饋 APP下載

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

公眾號

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