如何按字母顺序对随机生成的字符进行排序?

时间:2015-11-16 23:48:08

标签: java sorting random alphabetical

这是我到目前为止所拥有的

public class RandomCharacter
{
    public static char getRandomUpperCaseLetter()
    {
        int ascii = (int) (Math.random()*26) + (int) 'A';
        return (char)ascii;
    }
    public static char getRandomDigitCharacter()
    {
        int digit = (int)(Math.random()*10) + (int) '0';
        return (char)digit;
    }

    public static void main(String [] args)
    {

        for (int i = 1; i <= 100; i++)
        {
            System.out.print(getRandomUpperCaseLetter());
            if(i%10 == 0) 
                System.out.print("\n"); 
        }

    }
}

我不知道如何按字母顺序排列这个,我已经试了好几个小时但却找不到任何东西。有人能够使用我的代码教我如何运作吗?

2 个答案:

答案 0 :(得分:1)

要对值进行排序,必须先将它们存储在某些数据结构中,例如数组列表,然后再对它们进行排序。然后,如果您使用了可排序的集合(如数组列表),则可以使用.sort()方法,并且列表将自动排序。 如/ REF: http://beginnersbook.com/2013/12/how-to-sort-arraylist-in-java/

答案 1 :(得分:0)

对于自然排序,您只需在字符串中添加生成的字母并调用Collections.sort(listVariable)。这应该回答你的问题。

示例程序

import java.util.*;
public class Details  {

public static void main(String args[]){
   ArrayList<String> listofcountries = new ArrayList<String>();
   listofcountries.add("India");
   listofcountries.add("US");
   listofcountries.add("China");
   listofcountries.add("Denmark");

   /*Unsorted List*/
   System.out.println("Before Sorting:");
   for(String counter: listofcountries){
        System.out.println(counter);
    }

   /* Sort statement*/
   Collections.sort(listofcountries);

   /* Sorted List*/
   System.out.println("After Sorting:");
   for(String counter: listofcountries){
        System.out.println(counter);
    }
}

}