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

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

為什么我的程序有時候能運行出來有時候就死循環了!我是新手。。

public class CollectionTest {


public void testString() {

String str = "QWERTYUIOPASDFGHJKLZXCVBNMqwerty" +

"uiopasdfghjklzxcvbnm1234567890";

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

Random random = new Random();

Integer k;

String m;

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

String s = "";

do {

k = random.nextInt(10);

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

//生成字符串str長度范圍的隨機數

int r = random.nextInt(str.length());

//取一個字符

m = str.substring(r, r + 1);

//這種寫法不知道規不規范。。

s = s + m;

}

}?

//有時候會生成空字符串所以我加了個條件

while (stringList.contains(s) || stringList.contains(""));

stringList.add(s);

}

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);

}

}


public static void main(String[] args) {


CollectionTest ct = new CollectionTest();

ct.testString();

}


}


正在回答

2 回答

這個你參考一下吧

package?Course1;

import?java.util.ArrayList;
import?java.util.Collections;
import?java.util.List;
import?java.util.Random;

public?class?TestCollections?{
????/*
?????*?創建List<String>,生成十個隨機字符串放入其中
?????*?字符串長度為10以內的隨機整數
?????*?每條字符串的每個字符都為隨機生成的字符,字符可重復
?????*?每條字符串隨機不可重復
?????*/
	public?void?testSort(){
		List<String>?list?=?new?ArrayList<String>();
		String?base?=?"abcdefghijklmnopqrstuvwxyz0123456789";
		Random?random?=?new?Random();
		for?(int?i?=?0;?i?<?10;?i++)?{
			int?l;
			StringBuffer?sb?=?new?StringBuffer();
			do?{
				l?=?random.nextInt(10);
				for?(int?j?=?0;?j?<?l;?j++)?{
					sb.append(base.charAt(random.nextInt(base.length())));
				}
			}?while?(list.contains(sb)?||?l?==?0);
			list.add(sb.toString());
			System.out.println("成功添加:"?+?sb);
		}
		System.out.println("***********排序前***********");
		for(String?str:list){
			System.out.println(str);
		}
		Collections.sort(list);
		System.out.println("**********排序后**************");
		for(String?str:list){
			System.out.println(str);
		}
			
			
			
}
		
	
	public?static?void?main(String[]?args)?{
???????????TestCollections?tc=new?TestCollections();
???????????tc.testSort();
	}

}


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

豆芽丶 提問者

非常感謝!
2016-11-21 回復 有任何疑惑可以回復我~

你這個要是要隨機加入了空字符串,do-while就會陷入死循環

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

舉報

0/150
提交
取消

為什么我的程序有時候能運行出來有時候就死循環了!我是新手。。

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

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

幫助反饋 APP下載

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

公眾號

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