2012-03-24 26 views
0

私たちはこの問題を把握しようとしています。問題が何を求めているかを知る。 Lesterには、通常のアルファベット順ではなく、ランダムな順序でも、印刷したい単語のリストがあります。 AlphaFunオーダーと呼ぶ単語をソートする方法を決めました。 AlphaFun orderメソッドは、次の手順で単語をソートします 1.最初に単語の第2文字を比較します。 2.単語の4番目の文字を比較します(4番目の文字はスペース以下と見なされます) 4文字)。 3。単語の最後の文字を消してください(最後の文字は常に単語の最後の文字で、スペースではありません)。 4.最後に単語の最初の文字を比較します。 5.上記のすべてが同じ文字である場合、それらの文字に使用される単語はアルファベット順にソートされます。AlphaFunで並べ替える

注これらの例 単語:

EGG

パン

ALPHAFUN:

G SE

GSSE

RADB inputerの各行は、3〜10文字からなる単一の単語を含む

入力ファイルに含まれる入力およびラインの未知数、。 出力 あなたはアルファの楽しみため

例入力ファイル内の単語を出力します: BREAD 巣 BROAD EGGS EGG WALLET

例の出力は WALLET 巣 EGG EGGS BREADをスクリーニングします BROAD

どうすればこのことができますか?うんざり?私たちは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

パッケージalphafun; import java.io. *; import java.util。*; /ドキュメントと設定/管理者/マイドキュメント/ NetBeansProjects/AlphaFun/alphafun: パブリッククラスAlphaFun { のpublic static無効メイン(文字列[] args)はIOExceptionが { スキャナS =新しいスキャナ(新しいファイル( "Cをスローします。 dat ")); 文字列trim = s.next()。trim(); s.nextLine(); 文字列trim1 = s.next()。trim(); トリム[1] } } これは私たちが持っているものです。再加工する必要はありますか? –

+0

私たちはクラスでこれをやったことがないので、あなたは私たちに例を挙げてくれますか? –

+1

@AbrahamAndujo:もし私がもうあなたをくれたら、それは基本的にあなたの宿題をやっているだろう。私は、あなたがそれに接近する必要があるかどうかを、最小限の明白なビットの骨格を含めて分解しました。あなたは自分自身で残りのことをすることができるはずです。そうでない場合は、教師と話し合って、あなたと一緒に座って、あなたが持っていないレッスン理解された。 –

1

最後にCollections.sort(ArrayListを、myComparator)を使用し、その後、いくつかの並べ替え(ArrayListの)のリストにあなたの文字列を収集し、コンパレータのクラスでのご注文のロジックを実装します。どのように

Collections.sort(List, Comparator)

関連する問題