效果不理想,大神幫忙看看
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class sortList {
?? ?Random random=new Random();
?? ?String randomString;
?? ?StringBuffer string=new StringBuffer();
?? ?//將隨機生成的字符串randomString插入stringList
?? ?public void testSort(){
?? ??? ?List<String> stringList=new ArrayList<String>();
?? ??? ??? ?for(int i=0;i<10;i++){
?? ??? ??? ??? ?
?? ??? ??? ??? ?do {
?? ??? ??? ?????? randomString=getString();
?? ??? ??? ??? ?} while (stringList.contains(randomString));
?? ??? ??? ??? ?stringList.add(randomString);
?? ??? ??? ??? ?System.out.println("成功添加字符串:"+getString());
?? ??? ??? ??? ?
?? ??? ??? ?
?? ??? ?}
?? ??? ??? ?System.out.println("-------------排序前--------------");
?? ??? ??? ?for(String strings:stringList){
?? ??? ??? ??? ?System.out.println("元素:" + strings);
?? ??? ??? ?}
?? ??? ??? ?Collections.sort(stringList);
?? ??? ??? ?System.out.println("----------------排序后-------------------");
?? ??? ??? ?for(String strings:stringList){
?? ??? ??? ??? ?System.out.println("元素:" + strings);
?? ??? ??? ?}
?? ?}
?? ?//生成隨機字符串,賦值給randomString
?? ?public String getString(){
?? ??? ?String base="abcdefghijklmnopqrstuvwxyz0123456789";
?? ??? ?int k =random.nextInt(10);
?? ??? ?for (int i = 0; i < k; i++) {
?? ??? ??? ?int f =random.nextInt(base.length());
?? ??? ??? ?string.append(base.charAt(f));
?? ??? ?}
?? ??? ?randomString=string.toString();
?? ??? ?System.out.println("隨機生成字符串:"+randomString);
?? ??? ?return randomString;
?? ??? ?
?? ??? ?
?? ?}
?? ?public static void main(String[] args) {
?? ??? ?// TODO Auto-generated method stub
?? ??? ?sortList s=new sortList();
?? ??? ?//s.getString();
?? ??? ?s.testSort();
?? ?}
}
2015-11-05
代碼有兩處錯誤,改正即可:
1:testSort()里面的?System.out.println("成功添加字符串:"+getString()); 將getString改為randomString
2:getString里面需要將string清空,可用string.delete(0, string.length());語句.放在randomString=string.toString();后面即可.不然string會越來越長.也可將StringBuffer string=new StringBuffer();放在getString方法里定義,局部變量會自動刪除;
3:int k =random.nextInt(10); ?改為int k =random.nextInt(10)+1;(看個人理解吧,因為k為零沒有意義);
記得點贊!!!
2015-09-23
base串中加入26個大寫字母。