按字母顺序对字符串列表进行排序

时间:2012-09-02 19:53:50

标签: java arrays string class

好的,这是我的问题。我需要取一个字符串数组并按字母顺序排序,然后打印出第一个字符串:例如,一串“乔治亚州,佛罗里达州,阿拉巴马州”,它应该打印出阿拉巴马州。字符串不是由用户提交的,我有一个包含许多状态的文件,这些状态被输入为数组。

这就是我所拥有的:

import java.io.*;
import java.util.*;
public class MinString
{
    private static final int SIZE = 10;
    public static void main(String[] args)
    {
            String[] list = new String[SIZE];
            int numItems;

            numItems = Initialize (list);
            System.out.println(numItems);
    }

    private static int Initialize (String[] list)
    {
      //post : List is initialized with all strings from file.

      String filename, stateInput;
      int i = 0, numItems = 0;
      try  {
            System.out.print("Input File : ");
            Scanner stdin = new Scanner(System.in);
            filename = stdin.nextLine();
            stdin = new Scanner(new File(filename));

            while ((stdin.hasNext()) && (i < list.length))
            {
                    stateInput = stdin.nextLine();
                    System.out.println("S = " + stateInput);
                    list[i] = stateInput;
                    i++;
            }
            numItems = i;
      }
      catch (IOException e)  {
            System.out.println(e.getMessage());
      }
      return numItems;
    }

    // Method FindMin goes here
 private static String FindMin (String[] list, numItems);
 ?????

}

我不确定如何编写此FindMin方法。我需要编写FindMin,以便它将字符串大小为numItems的数组作为输入,并将最小字符串返回给调用函数。

有什么想法吗?

6 个答案:

答案 0 :(得分:3)

因为这就像一个家庭作业,我会帮助你自己:

http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#compareTo(java.lang.String

答案 1 :(得分:1)

最简单的方法是:

return Collections.min(Arrays.asList(list));

答案 2 :(得分:1)

java.util.Arrays对象包含一堆用于处理数组的静态方法。我想Arrays.sort可能会对你有所帮助。由于Strings使用字母顺序实现Comparable接口,因此排序后的数组应该为您提供所需的信息。

答案 3 :(得分:0)

只需使用Arrays.sort(list),列表就会被排序。

答案 4 :(得分:0)

import java.util.*;
class Six
{
public static void main(String arg[])
{
String str[]=new String[5];
Scanner in=new Scanner(System.in);
System.out.println("Enter the element of array :");
for(int i=0;i<=4;i++)
{
str[i]=in.next();
}
Arrays.sort(str);
System.out.println("The first element after sorting is:");
System.out.println(str[0]);
}
}

答案 5 :(得分:-1)

private static String findMin(String[] list) {
    String minState = list[0]; 
    for(int i=1; i<list.length; i++){
        String min=list[i];
        minState=(min!=null&&min.compareTo(minState)<0)?min:minState;
    }
    return minState;
}