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,就像 ham 之于仓鼠一样。

无论如何,您的代码字面意思是“将第一个替换分配给mixedLetterText,然后逐个计算所有其他替换并将它们丢弃”。

根据您希望它的工作方式,您可以链接替换:

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

但是,请记住,如果您有交叉,您可能会遇到问题。例如,如果您的代码在一个链中,如果输入是,g那么输出将是6,这y与您可能期望的不同。

如果您使用的是 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 回答