【问题标题】:Sort a some words in a string对字符串中的一些单词进行排序
【发布时间】:2014-04-17 05:02:02
【问题描述】:

假设有一个文件:

Virginia Tyler Taylor Wilson
Ohio Grant Hayes Garfield Harrison_B McKinley Taft Harding
Massachusetts Kennedy Bush_GHW
New_York VanBuren Fillmore Roosevelt_T Roosevelt_F

我需要按顺序排序,下面是我的代码:

TreeMap<String, String> map = new TreeMap<String, String>();
while (infile1.ready()){
String line = infile1.readLine();
String s = line.substring(0, line.indexOf(" "));
String p = line.substring(line.indexOf(" "));

map.put(s, p);
}

for (String p : map.keySet()){
System.out.println(p + " " + map.get(p));
}

我的输出是:

Massachusetts  Kennedy Bush_GHW
New_York  VanBuren Fillmore Roosevelt_T Roosevelt_F
Ohio  Grant Hayes Garfield Harrison_B McKinley Taft Harding
Virginia  Tyler Taylor Wilson

预期的输出是:

Massachusetts **Bush_GHW Kennedy**
New_York **Fillmore Roosevelt_F Roosevelt_T VanBuren**
Ohio **Garfield Grant Harding Harrison_B Hayes McKinley Taft**
Virginia **Taylor Tyler Wilson**

唯一的区别是值的顺序,我在预期输出中将其加粗。 有没有一种快速的方法来对 String p 进行排序并将其放入地图中?

【问题讨论】:

    标签: java string sorting key-value treemap


    【解决方案1】:

    你可以简写

    Arrays.sort(line.substring(line.indexOf(" ")).split(" "));
    

    【讨论】:

      【解决方案2】:

      试试这个

      String[] ps = line.substring(line.indexOf(" ")).split(" ");
      Arrays.sort(ps);
      

      然后尝试将 ps 与 p 与 " " 结合起来;

      【讨论】:

        【解决方案3】:
        Massachusetts **Bush_GHW Kennedy**
        New_York **Fillmore Roosevelt_F Roosevelt_T VanBuren**
        Ohio **Garfield Grant Harding Harrison_B Hayes McKinley Taft**
        Virginia **Taylor Tyler Wilson**
        
        In your above expected output how Bush Comes after mass..
        So please explore output correctly.
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-07-30
          • 1970-01-01
          • 2016-02-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-08
          相关资源
          最近更新 更多