0

こんにちは、特定の方法で文字列形式の数字を交換したいと思います。

例えば ​​:

私が持っている場合は、これまでに試したことは何でも10325476返す必要があります。文字列の2つの数値のペアを交換しただけです。01234567


私が持っている場合は編集01AB3423してください。答えは次のとおり10BA4332です。以下は、望ましい出力を提供する現在の実装です。

char temp1 = c1[0];
c1[0] = c1[1];
c1[1] = temp1;

char temp2=c1[2];
c1[2]=c1[3];
c1[3]=temp2;

char temp3=c1[4];
c1[4]=c1[5];
c1[5]=temp3;

char temp4=c1[6];
c1[6]=c1[7];
c1[7]=temp4;

私はこれを8つの数字すべてに対して行いましたが、これは静的な方法です. そして、私はこれを行う正しい方法ではないことを知っています.これを動的にも行いたい.これを実装する他の方法はありますか?

任意のアイデアやアドバイスをいただければ幸いです。

4

2 に答える 2

3

編集: -

最新の編集から、文字列内の連続する文字のペアを交換したいようです。その場合は が必要ですloop

このコードを試してください: -

String str = "BA34CD567";
char[] arr = str.toCharArray();

for (int i = 0; i < arr.length - 1; i += 2) {
    char temp = arr[i];
    arr[i] = arr[i + 1];
    arr[i + 1] = temp;
}

System.out.println(arr);

出力 : -

AB43DC657

各反復を検討しているため、ループ内でインクリメントiしました。2two elements


古い回答: -

わずか 3 ステップ: -

  • 文字列を char 配列に変換します。( str.toCharArray())
  • char 配列をソートします。( Arrays.sort(arr)).Arrays.sortは、並べ替えられた配列を返さないことに注意してください。配列をその場で並べ替えます。
  • そして、配列を印刷します。(まあ、あなたはこれを行う方法を知っています)
于 2012-12-02T15:02:35.233 に答える
0

バブル ソート(数値の集合が小さい場合)、マージ ソートクイックソートなど、いくつかのソート アルゴリズムを見てみましょう。これはあなたがやりたいと思われることです -ソート

于 2012-12-02T15:02:14.580 に答える