试图在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);   
         }
    }
}

试图在c#中的字符串中的字符之间添加空格

可以一次性完成

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