【问题标题】:Sorting a list of Strings in Alphabetical order按字母顺序对字符串列表进行排序
【发布时间】:2012-09-02 19:53:49
【问题描述】:

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

这就是我所拥有的:

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

有什么想法吗?

【问题讨论】:

    标签: java arrays string class


    【解决方案1】:

    因为这感觉像是一项家庭作业,所以我会帮助你自助:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        最简单的方法是:

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:
            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]);
            }
            }
            

            【讨论】:

              【解决方案6】:
              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;
              }
              

              【讨论】:

                猜你喜欢
                • 2017-02-23
                • 1970-01-01
                • 2023-01-25
                • 1970-01-01
                • 2021-07-05
                • 1970-01-01
                • 1970-01-01
                • 2013-09-04
                • 1970-01-01
                相关资源
                最近更新 更多