2012-09-02 75 views
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的字符串作为输入,并返回调用函数的最小字符串。

任何想法?

回答

-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; 
} 
1

做到这一点最简单的方法是:

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

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

0

只是使用Arrays.sort(list)并且列表将被排序。

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