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

时间:2015-10-27 09:04:50

标签: c# string

我正在尝试在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);   

         }
    }
}

6 个答案:

答案 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