2012-09-02 167 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]); 
} 
}