2011-02-03 12 views
0

文字列の '0'を 'F'、すべての文字を '1'、 'E'などの文字列に置き換えたいとします。replaceは数字を置き換えません

「234567890ABCDEFは」「DCBA」になるはずである

  final char[] items = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; 
     for (int i = 0; i < 16; i++) { 
      newString = oldString.replace(items[i], items[15-i]); 
     } 

残念ながら、コードのこの作品は動作しません。それはすべての文字を置換しますが、数字は置換しません。任意の提案、なぜですか?私は途方に暮れて本当によ...

+2

あなたの例では、」doesnのあなたの説明にマッチする。 '0'は 'F'ではなくあなたの例で '5'に置き換えられます –

+1

ここでやろうとしていることに混乱しています。文字列を逆にしようとしていますか?または数字を置き換えますか?また、いくつかの質問を見て、答えを受け入れてください。 – Grammin

+0

あなたはFEDCBA9889ABCDEFを見ていますか? – Nishant

答えて

2

あなたの問題は、あなたが7にI = 0のための文字に数字を交換し、バックあなたは結果を反転するので、私= 8用に15

+0

これはもう少し説明できるかもしれません –

+0

@マークそれは私に宿題のように見えるのでヒントを与えながらパズルの一部を維持しようとしました。 – rsp

+0

必要なものは、Perlの音訳機能(tr ///)のようなものです。しかし、私はJavaに組み込まれているとは思わない。私はそのようなライブラリの多くの実装がWeb上にあることを知りました。 –

0

にこれがあることです2回目の交換で最初の8回の交換の間に完了!つまり、

0-7は0-7に変換されますが、8と9はコンターパートに変換されます。あなたのコードにデバッグを追加し、イテレーションを見れば

0

あなたが最後の反復の置き換え()ESとの最初の反復の結果を上書きする方法がわかります:

234567890ABCDEF 
23456789FABCDEF 
23456789FABCDEF 
D3456789FABCDEF 
DC456789FABCDEF 
DCB56789FABCDEF 
DCBA6789FABCDEF 
DCBA9789FABCDEF 
DCBA9889FABCDEF 
DCBA9779FABCDEF 
DCBA6776FABCDEF 
DCB56776F5BCDEF 
DC456776F54CDEF 
D3456776F543DEF 
23456776F5432EF 
23456776F54321F 

関連する問題