0

originalText を取得し、originalText の各文字を新しい特定の文字に置き換えてから、mixedLetterText として出力するプログラムを作成する必要があります。

これは私が持っているものですが、最初の「String mixedLetterText=originalText.replace('a', 'w');」に対してのみ機能します。他の文字は変更しません。私はこれらすべてに非常に慣れておらず、何が問題なのかわかりません...とにかくありがとう! 助けてください。

public class MixLettersAndNumbers
{

    public static void main(String[] args)

    {
        String originalText = "as we walk";


        String mixedLetterText = 
        originalText.replace('a', 'w');
        originalText.replace('s', 'e');
        originalText.replace('d', 'r');
        originalText.replace('f', 't');
        originalText.replace('g', 'y');
        originalText.replace('h', 'u');
        originalText.replace('j', 'i');
        originalText.replace('k', 'o');
        originalText.replace('l', 'p');
        originalText.replace('z', 's');
        originalText.replace('x', 'd');
        originalText.replace('c', 'f');
        originalText.replace('v', 'g');
        originalText.replace('b', 'h');
        originalText.replace('n', 'j');
        originalText.replace('m', 'k');   
        originalText.replace('q', '1');
        originalText.replace('w', '2');
        originalText.replace('e', '3');
        originalText.replace('r', '4');
        originalText.replace('t', '5');
        originalText.replace('y', '6');
        originalText.replace('u', '7');
        originalText.replace('i', '8');
        originalText.replace('o', '9');
        originalText.replace('p', '0');

        //test it out
        System.out.println("original = " + originalText);
        System.out.println("mixed = " + mixedLetterText);
    }
}
4

3 に答える 3

2

次のすべての(類似した)行を置き換えます。

originalText.replace('h', 'u');

に:

originalText = originalText.replace('h', 'u');

このreplace()関数は、変更されたバージョンのテキストを返します。

最後に、変数originalTextには変更されたバージョンのテキストが含まれます。

つまり、

// no need to use mixedLetterText if you are not intended to keep originalText
originalText = originalText.replace('a', 'w');
originalText = originalText.replace('s', 'e');
originalText = originalText.replace('d', 'r');
originalText = originalText.replace('f', 't');
originalText = originalText.replace('g', 'y');

... 等々

于 2013-03-05T03:13:02.517 に答える
1

これは Java ですか、それとも JavaScript ですか? ハムがハムスターにあるように、Java は JavaScript にあります。

とにかく、コードは文字通り「最初の置換を に割り当て、mixedLetterText他のすべての置換を 1 つずつ計算して破棄する」と言っています。

どのように動作させたいかによって、置換を連鎖させることができます:

String mixedLetterText = originalText
       .replace('a','w').replace('s','e')........

ただし、クロスオーバーがある場合は、問題が発生する可能性があることに注意してください。たとえば、チェーン内のコードでは、入力が である場合g、出力は であり6y予想とは異なります。

Java で作業している場合、この質問は変換を行う関数を見つけるのに役立ちます。Java Scriptの場合、この関数が役立ちます。

于 2013-03-05T03:16:07.403 に答える
0

あなたのコードでは、元のテキストを一度だけ変更しようとしています。これらの変更を行う

String  mixedLetterText=originalText.replace('s', 'e');
mixedLetterText=originalText.replace('d', 'r');
mixedLetterText=originalText.replace('f', 't');
mixedLetterText=originalText.replace('g', 'y');
mixedLetterText=originalText.replace('h', 'u');
mixedLetterText=originalText.replace('j', 'i');
mixedLetterText=originalText.replace('k', 'o');
mixedLetterText= originalText.replace('l', 'p');
mixedLetterText=originalText.replace('z', 's');
mixedLetterText=originalText.replace('x', 'd');
mixedLetterText=originalText.replace('c', 'f');
mixedLetterText=originalText.replace('v', 'g');
mixedLetterText=originalText.replace('b', 'h');
mixedLetterText=originalText.replace('n', 'j');
mixedLetterText=originalText.replace('m', 'k');   
mixedLetterText=originalText.replace('q', '1');
mixedLetterText=originalText.replace('w', '2');
mixedLetterText=originalText.replace('e', '3');
mixedLetterText=originalText.replace('r', '4');
mixedLetterText=originalText.replace('t', '5');
mixedLetterText=originalText.replace('y', '6');
mixedLetterText=originalText.replace('u', '7');
mixedLetterText=originalText.replace('i', '8');
mixedLetterText=originalText.replace('o', '9');
mixedLetterText=originalText.replace('p', '0');
于 2013-03-05T03:23:16.567 に答える