-7

我想创建一个应用程序 con C#,其中字符串中的每个字母都会改变它的值。

例如:

Input string: Hello world.

并据此:

h = f, 
e = 3, 
l = 1, 
l = 1, 
o = 0, 
blank space = x, 

w = s, 
o = 0, 
r = 5, 
l = 1, 
d = g.

So the output should be: f3110xs051g

主要思想是:如何更改字符串中的每个字母,尝试模拟加密?我尝试在“for”循环中使用 string.Replace(),但它返回相同的文本。我怎样才能改变它?

非常感谢。

4

3 回答 3

2

您可以尝试创建一个字符串、字符串字典并使用您需要的映射加载它。然后创建一个 char 数组并应用一个将转换字符串值并最终连接结果的 lambda。

Dictionary<char,char> d = new Dictionary<char,char>();
d.Add('h','f'); 
d.Add('e','3');
d.Add('l','1');
d.Add('o','0');
d.Add(' ','x');

String.Concat("hello".Select (x => d[x]));

但我认为你应该使用加密库。

于 2013-09-05T18:07:10.907 回答
-2

String.Replace() 返回一个字符串,并且不修改原始对象。

您需要将字符串设置为替换函数的返回值:

String test = "abcdefg";
test = test.Replace("abc", "xyz");
于 2013-09-05T17:59:52.980 回答
-2

首先,下次显示您尝试过的实际代码

其次,String.Replace()不要替换字符串,它会返回替换后的字符串,所以你想要这个:

text = text.Replace("h","f")

第三,不需要循环,String.Replace()替换旧值的所有实例

第四也是最后,阅读文档

于 2013-09-05T18:02:34.123 回答