2013-03-05 53 views
0

我需要创建采用原始文本的程序,并使用新的特定字母替换originalText中的每个字母,然后将其输出为mixedLetterText。需要用另一个特定的字母替换输入文本的每个字母

这是我的,但它只适用于第一个“String mixedLetterText = originalText.replace('a','w');”并且不会更改任何其他字母。我对这一切都很陌生,只是不知道什么是错的......无论如何,谢谢!请帮忙。

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

到:

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); 
    } 
} 
+0

这是否可能被错误标记?看起来像Java而不是JavaScript。 – 2013-03-05 03:12:49

+0

同意,这不是JavaScript。我对Java并不熟悉,但似乎必须在每个替换语句之前加上'String mixedLetterText ='。虽然我确定有人有更好的解决方案。 – 2013-03-05 03:34:20

回答

2

从更换所有(类似)线

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'); 

...等等

+0

这确实奏效,但@kolink仍然是正确的,他们中的一些人不工作,因为他们重复。有没有快速解决这个问题? – LucasA618 2013-03-05 03:48:27

+0

是的。重新安排更换订单 – Raptor 2013-03-05 03:56:20

1

是这个Java或JavaScript? Java对于JavaScript来说就像仓鼠一样。

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

根据您想如何工作,你可以只链中的替换:

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

但是,请记住,如果你有交叉,你可能有问题。例如,在代码链中,如果输入为g,那么输出将是6,而不是像您所期望的y

如果您使用的是Java,那么this question将帮助您找到一个函数来执行转换。如果是Java 脚本,那么this function将有所帮助。

+0

你是正确的...... g不打印6不是y。任何方式来快速解决这个问题? – LucasA618 2013-03-05 03:41:40

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'); 
+0

这是不正确的。只有最后一行才有效。 – Raptor 2013-03-05 03:54:50

+0

是的,你是正确的我忘了再次分配给同一个字符串 – Prakash 2013-03-05 05:37:08

相关问题