私は文字列のアルファベット順をソートするこのプログラムを書いています。私は数字の文字列の別の部分でそれを並べ替えることができるようにしたい。 (私も日食を使用しています)。ここで は私が持っているものである:出力の場合文字列の配列を文字列またはインデックスの一部で並べ替えますか?
import edu.princeton.cs.algs4.Merge;
public class sortNum {
public static void main(String[] args) {
// TODO Auto-generated method
String[] age = {"Meredith Chicago #82",
"Brian Phoenix #45", "Jess Miami #26",
"Gunther NYC#53", "Frank Boise #4"};
System.out.println("-----------------------------");
//loop through array and print out unsorted string
for(String i : age){
System.out.printf("%25s\n", i); //to right-align
}
System.out.println("-----------------------------");
Merge.sort(age);
//loop through array and print sorted string
for(String j: age){
System.out.println(j); //this is where I am unsure of the right way
}
System.out.println("-----------------------------");
}
}
、私はこれを取得:
-----------------------------
Meredith Chicago #82
Brian Phoenix #45
Jess Miami #26
Gunther NYC#53
Frank Boise #4
-----------------------------
Brian Phoenix #45
Frank Boise #4
Gunther NYC#53
Jess Miami #26
Meredith Chicago #82
-----------------------------
をそして明らかにこの文字列の先頭を見ていることによるものです。これは問題ではなく、当然のことです。
数値を表示する場所に設定できますか?インデックスを数えることでこれを行うことはできますか?たとえば、末尾の数字(-1
)から#
までを数えますが、これをソートして並べ替えます。もちろん昇順。私はまだforループを使用しようとしています。
私はループなしで、情報ごとに別々のオブジェクトを作成していましたが、これが永遠にかかり、コードが多すぎることに気付きました。
'Merge'は何ですか?それはどこに定義されていますか? Javaライブラリのソート方法を使用している場合は、好きなようにソートするためのカスタム 'Comparator'実装を提供できますが、使用しているクラスで可能かどうかは分かりません。 –
はい、文字列の数値部分で配列を並べ替えることができます。文字列を正しく分割し、数値を抽出し、intに変換して並べ替えます。おそらくそれを行う他の方法があります。あなたの質問に答えますか?あるいは、コードを提供することで誰かにそのことを示す方法を教えてもらいたいですか? – Nurjan
@JimGarrison私は、 'Merge'を含むhttp://algs4.cs.princeton.edu/code/のalgs4.jarを使用しています。また、ここでは 'merge'の定義をhttp://algs4.cs.princeton.edu/code/edu/princeton/cs/algs4/Merge.java.htmlとしています。 周囲の読書から、私はそれが可能かもしれないと思う。私はJava初心者のように実装する方法がわかりません。 – adhamncheese