更改输入字符串C#上的每个字母

时间:2013-09-05 17:57:33

标签: c# windows encryption

我想创建一个应用程序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

主要思想是:如何更改字符串中的每个字母,尝试模拟加密?我已尝试使用string中的string.Replace()进行"对于"循环,但它返回相同的文本。我该怎么改变它?

非常感谢。

3 个答案:

答案 0 :(得分: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]));

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

答案 1 :(得分:-2)

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

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

String test = "abcdefg";
test = test.Replace("abc", "xyz");

答案 2 :(得分:-2)

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

第二个String.Replace()不替换字符串,它返回被替换的字符串,所以你想要这个:

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

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

第四个也是最后一个,请阅读doc