私の問題は、アルファベット順を使用していない文字を比較したいのです。ここ は私の順序関係である:< B < T < Q < C < D < E < F ...アルファベット順のコンパレータをアルファベット順と異なる順序で作成する方法
どのように私は、このためのコンパレータを作成することができますか?私はこのようなすべてのケースを記述する必要があります:
if (char1.equals(char2)) {
return 0;
} else if (char1.equals("A")) {
return -1;
} else if (char1.equals("B") && char2.equals("A")) {
return 1;
} else if (char1.equals("T")
&& (char2.equals("B") || char2.equals("A"))) {
return 1;
} else if (char1.equals("Q")
&& (char2.equals("T") || char2.equals("B") || char2
.equals("A"))) {
return 1;
} else if (char1.equals("C")
&& (char2.equals("Q") || char2.equals("T")
|| char2.equals("B") || char2.equals("A"))) {
return 1;
} else if (char1.equals("D")
&& (char2.equals("C") || char2.equals("Q")
|| char2.equals("T") || char2.equals("B") || char2
.equals("A"))) {
return 1;
} else if (char1.equals("E")
&& (char2.equals("D") || char2.equals("C")
|| char2.equals("Q") || char2.equals("T")
|| char2.equals("B") || char2.equals("A"))) {
return 1;
} else if (char1.equals("F")
&& (char2.equals("E") || char2.equals("D")
|| char2.equals("C") || char2.equals("Q")
|| char2.equals("T") || char2.equals("B") || char2
.equals("A"))) {
return 1;
}
いただきありがとうございますか!私が理解するように、文字列ではなく、単一の文字列を比較したいだけです。 –
ルックアップテーブル(char - > order)を作成し、 'lookup [char1]'と 'look [char2]'を比較してください。 – Phylogenesis
1つの解決策は、リストにcharを入れてインデックスを使用することです –