2012-09-02 4 views
0

좋아, 여기 내 문제가있다. 나는 일련의 문자열을 알파벳 순으로 정렬 한 다음 첫 번째 문자열을 인쇄해야합니다. 예를 들어, "Georgia, Florida, Alabama"라는 문자열은 앨라배마를 인쇄해야합니다. 문자열은 사용자에 의해 제출되지 않습니다, 나는 배열로 입력 된 상태를 잔뜩 가진 파일이 있습니다.알파벳 순서로 문자열 목록 정렬

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가 도움이 될 것 같습니다. Strings는 알파벳 순서로 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]); 
} 
} 
관련 문제