2012-03-24 42 views
0

所以我们有这个问题,我们试图弄清楚。下面问题是什么问题。 莱斯特列出了他想要打印的单词,而不是按照通常的字母顺序排列,但不是以随机顺序排列。他决定采用一种方法对他称之为AlphaFun订单的单词进行排序。 AlphaFun订单方法使用以下步骤对单词进行排序 1.首先比较单词 的第二个字母2.然后比较单词的第4个字母(第4个字母将被认为是包含小于4个字母)。 3.比较单词的最后一个字母(最后一个字母将始终是单词的最后一个字母,而不是空格)。 4.最后比较单词中的第一个字母。 5.如果以上所有内容都是相同的字符,则用于这些字母的单词将按字母顺序排序。使用AlphaFun进行分类

注意这些例子 单词:

EGG

EGGS

BREAD

ALPHAFUN:

ģSE

GSSE

RADB

输入 输入文件包含和线的未知数,其中inputer的每一行包含一个字由3至10个字母。 输出 您将打印在阿尔法乐趣顺序的话

例如输入文件: BREAD 鹰巢 BROAD 鸡蛋 EGG 钱包

例如输出到屏幕 钱包 鹰巢 EGG 鸡蛋 BREAD BROAD

我们该怎么做这个p roblem?我们一直坚持了2个小时。

回答

1

如何我们可以做这个问题吗?我们一直坚持了2个小时。

Java实际上很容易实现。您只需在课程中实施Comparator<String>,例如

public class AlphaFunComparator implements Comparator<String> { 
    public int compare(String o1, String o2) { 
     // Implement rules described in the question 
    } 
} 

然后你只需要将文件加载到一个列表,并调用:

Collections.sort(list, new AlphaFunComparator()); 

打印出来的清单,你就大功告成了。

+0

package alphafun; import java.io. *; import java.util。*; 公共类AlphaFun { 公共静态无效的主要(字串[] args)抛出IOException异常 { 扫描器S =新的扫描仪(新文件(“C:/ Documents和设置/管理/我的文档/的NetBeansProjects/AlphaFun/alphafun。 DAT“)); String trim = s.next()。trim(); s.nextLine(); String trim1 = s.next()。trim(); trim [1] } } 这就是我们的,我们是否需要重做它? – 2012-03-24 21:38:03

+0

你能举例,因为我们从来没有在我们班上班? – 2012-03-24 21:40:19

+1

@AbrahamAndujo:如果我再给你,它基本上会为你做功课。我已经告诉你如何处理它,包括最不明显的位的骨架。你应该可以自己完成休息 - 如果你不能,那么你可能最好与老师讨论这个问题,他们可以坐下来找出你没有的课程。了解。 – 2012-03-24 21:42:27

1

在比较器类中实现你的排序逻辑,然后收集你的字符串成某种(ArrayList中)的名单,最后用Collections.sort(ArrayList中,myComparator):

Collections.sort(List, Comparator)