【问题标题】:sort int string java [closed]排序 int 字符串 java [关闭]
【发布时间】:2012-06-14 00:31:21
【问题描述】:

我的 TXT 文件包含以下内容:

Škoda Fábia
法巴:Červená
05050

Škoda Fábia
farba: Metalíza
53498

Škoda Fábia
farba: Metalíza
46538

Škoda Fábia
法巴:Červená
21849

Škoda Fábia
farba: Biela
10219

如何按数字排序,让这3个信息不分开?

【问题讨论】:

  • 欢迎来到 Stack Overflow! What have you tried?
  • @Slanec,你是怎么猜到格式的?也许文件真的和最初呈现的一样丑陋......
  • @sarnold 嗯。好点子。确实,我根据那里的评论猜测。太热心了,不是吗? Tomas,这是您在评论中想要表达的意思,还是不是?
  • @Slanec:啊哈,我还以为这也是内容的一部分。那么你可能是对的......
  • 嗯,这是我在这里的第一篇文章,看起来确实像原始文件

标签: java sorting


【解决方案1】:

这个问题被否决的原因是:

  1. There's no effort shown. Tell us what you've tried and what you know.
  2. 我们喜欢代码。请向我们展示您的代码。即使是非工作的。
  3. 如果人们想了一会儿这个问题,就会开始出现未回答的问题。例如:
    • 所有数字都是 6 位数字吗?
    • 如果不是,05050 是小于还是大于 5051

也就是说,这是你的答案:

  1. 将汽车读入某种结构。 Car 类将是完美的(如果这种排序是唯一有用的,则可以有自己的 compareTo() 方法)。或者只为每辆车使用String[],从而得到一系列汽车(String[][])。
  2. 如果它们是Comparable,则将它们排序为this,或者使用自定义Comparator 将它们排序为this

一个例子(如果可以的话,使用 SkodaCar 类而不是 String[] 的东西):

// every car is a String[3]
String[][] cars = loadCars();
Comparator<String[]> skodaCarComparator = new Comparator<String[]>() {
    @Override
    public int compare(String[] o1, String[] o2) {
        // compares the numbers as Strings using String's compareTo()
        return o1[2].compareTo(o2[2]);
    }
}; 
Arrays.sort(cars, skodaCarComparator);

【讨论】:

    猜你喜欢
    • 2013-03-11
    • 2019-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    相关资源
    最近更新 更多