试图在c#中的字符串中的字符之间添加空格
本文关键字:之间 添加 空格 字符 字符串 | 更新日期: 2023-09-27 18:19:35
我正在尝试在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);
}
}
}
可以一次性完成
strResult= String.Join(" ", name.Reverse());
您可以使用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:");
除了un-rucky的答案在每个字母后添加空格外,您还可以使用字符串的Insert()方法在某个索引处添加空格
示例:
name = "Rudolf";
name.Insert (1, " ");
结果到"Rudolf"
类似的东西
strResult= yourString(" ", name.Reverse());
通常,如果您只想在字符串中插入空格,我会推荐其他答案之一。
但在您的示例代码中,由于您无论如何都在循环字符串,因此可以将反转操作与空格插入操作结合起来:
// ....
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();
稍微偏离主题。。。
如果您想像时间一样在固定宽度数字中的字符之间添加空格,您也可以使用字符串格式语法:
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