C# 如何将其转换为字符串?

C# 如何将其转换为字符串?,c#,C#,我想从5个字符的字符串中为每个字符添加2个字符。我可以为每个字符添加2个字符,但它会生成数字,即其ASCII值而不是字符。我想将它们转换为字符串 我是c语言的初学者,可能不会理解任何复杂的东西,如果有简单的回答,我将不胜感激。我也不允许使用数组,也不允许使用foreach,我需要能够简单地从一个五个字母的字符串中向每个字符添加2个字符,并打印将由+2加密创建的新词的结果 word = Convert.ToString(Console.ReadLine()); Console.Write(wor

我想从5个字符的字符串中为每个字符添加2个字符。我可以为每个字符添加2个字符,但它会生成数字,即其ASCII值而不是字符。我想将它们转换为字符串

我是c语言的初学者,可能不会理解任何复杂的东西,如果有简单的回答,我将不胜感激。我也不允许使用数组,也不允许使用foreach,我需要能够简单地从一个五个字母的字符串中向每个字符添加2个字符,并打印将由+2加密创建的新词的结果

word = Convert.ToString(Console.ReadLine());

Console.Write(word.ElementAt(0) + 2);
Console.Write(word.ElementAt(1) + 2);
Console.Write(word.ElementAt(2) + 2);
Console.Write(word.ElementAt(3) + 2);
Console.Write(word.ElementAt(4) + 2);

不确定您想做什么,但这里有一个解决方案:


下面是一个示例代码:

string word = "Hello";
string result = string.Empty;
foreach(char c in word) //loop through each character of word
{
    result +=  (char)(c + 2);  //Add 2 to character and append it to result after converting back to character
}

Console.WriteLine(result);

我对它做了一些修改,使它不限于5个字符的单词。

如果你想深入Linq,你可以在一行中完成:

Console.WriteLine(new String(word.Select(x => (char)(x + 2)).ToArray()));
C中的字符串基本上是字符的集合,因此我们选择每个字符,用+2修改它,然后将结果集合转换成字符串构造函数接受的数组

这并不是对初学者最友好的游戏,但它展示了Linq的力量

Fiddle

或使用StringBuilder,如果输入字符串较长,则效率更高:

 var word = "Hello";
 var buffer = new StringBuilder(word.Length);
 foreach (var c in word)
 {
     buffer.Append((char) (c + 2));
 }
可以通过调用buffer.ToString找到结果:


连接任意长的字符串集最好使用StringBuilder来完成

告诉我们单词是什么以及它来自哪里。告诉我们为什么“每个字符需要添加2个”。我更新了描述,希望能提供更多有用的信息。您希望“z”转换为什么?在.NET以及VB4/5/6/A/Script、Java、JavaScript等中。。。文本数据类型为字符串、字符、。。。包含UTF-16编码单元,其中一个或两个编码一个码点。所以,除了你想要z转换成什么,你想要什么我不知道z是什么,因为我从来没有输入过。但我只需要将最终用户输入的5个字母字符串中的每个字符加上2,然后打印一个字符串,而不是它们的ASCII值。没有foreach或数组等。我需要更基本的形式,不管我是否需要花很长时间来编写代码。我是否能够让我们说,创建没有值的char变量,并简单地将它们设置为等同于word.element在任何位置,然后从那里继续?使用ElementAt和索引的问题是,您需要知道输入的长度。如果有人在那里把Hello改成Hello,你就必须编写更多的代码。更好的解决方案是像@Nish26和我一样迭代输入中的字符。我尝试将LINQ和StringBuilder混合在一起,并放弃了foreach循环的设置。
 var word = "Hello";
 var buffer = new StringBuilder(word.Length);
 foreach (var c in word)
 {
     buffer.Append((char) (c + 2));
 }
Console.WriteLine(buffer.ToString());