我正在尝试在c#中的字符串中的字符之间添加空格...任何建议都将非常感谢..谢谢
using System;
namespace nameReverser
{
class Program{
public static void Main(string[] args )
{ Console.WriteLine("Magical Name Reverser");
//User enters name
Console.WriteLine("Please Enter Your Name:");
string name = Console.ReadLine();
char[] cArray = name.ToCharArray();
string nameReversed = String.Empty;
for (int i= cArray.Length - 1; i>-1; i--)
{
nameReversed +=cArray[i];
}
Console.WriteLine("Your name in reverse order is:");
Console.WriteLine(nameReversed);
}
}
}
答案 0 :(得分:3)
可以一次性完成
strResult= String.Join(" ", name.Reverse());
答案 1 :(得分:2)
您可以使用String.Join
从具有单个空格作为分隔符的数组中获取新字符串。要以相反的顺序打印,您可以使用Array.Reverse()
,因此您的整个代码将如下所示:
Console.WriteLine("Magical Name Reverser");
Console.WriteLine("Please Enter Your Name:");
string name = Console.ReadLine();
char[] cArray = name.ToCharArray();
Array.Reverse(cArray);
string resultString = String.Join(" ", cArray);
Console.WriteLine(resultString );
Console.WriteLine("Your name in reverse order is:");
答案 2 :(得分:1)
除了非幸运的答案,在每个字母后添加空格,您也可以使用字符串的Insert() method在某个索引处添加空格
示例:
name = "Rudolf";
name.Insert (1, " ");
结果“R udolf”
答案 3 :(得分:1)
类似这样的东西
strResult = yourString(“”,name.Reverse());
答案 4 :(得分:0)
通常情况下,如果您只想在字符串中插入空格,我会推荐其他答案之一。
但是在您的示例代码中,由于您仍在循环遍历字符串,因此可以将反转操作与空间插入操作结合使用:
// ....
for (int i = cArray.Length - 1; i > -1; i--)
{
nameReversed += cArray[i] + " ";
}
// ...
更好的是,正如评论中所建议的那样:如果要重复添加字符串,请考虑使用StringBuilder:
StringBuilder reverseBuilder;
for (int i = cArray.Length - 1; i > -1; i--)
{
reverseBuilder.Append(cArray[i]);
reverseBuilder.Append(' ');
}
// ...
nameReversed = reverseBuilder.ToString();
答案 5 :(得分:0)
稍微偏离主题...
如果您想像在固定宽度编号中那样在字符之间添加空格,还可以使用字符串格式语法:
int time = 1204; //represents 12:04
int hh = time / 100;
int mm = time - hh * 100;
string result = string.Format("{0:0 0} : {1:0 0}", hh, mm);
//result is 1 2 : 0 4