0

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

这就是我所拥有的:

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 的字符串数组作为输入,并将最小字符串返回给调用函数。

有任何想法吗?

4

6 回答 6

3

由于这感觉像是一项家庭作业,我将帮助您自助:

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

于 2012-09-02T19:58:56.550 回答
1

最简单的方法是:

return Collections.min(Arrays.asList(list));
于 2012-09-02T20:10:26.767 回答
1

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

于 2012-09-02T20:10:37.090 回答
0

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

于 2012-09-02T20:29:55.743 回答
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]);
}
}
于 2012-09-10T17:52:01.440 回答
-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;
}
于 2012-09-02T20:25:50.783 回答