我想创建一个应用程序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()进行"对于"循环,但它返回相同的文本。我该怎么改变它?
非常感谢。
答案 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