如何在一个字符串中组合两个不同的字符串?

时间:2013-09-11 01:08:34

标签: c# string

我已经检查过大多数问题可能包含我的解决方案,但我找不到任何问题。或者也许我不理解。所以,这是我的问题:

我想将两个字符串组合在一起并继续单独使用。

我的字符串:

    static string name = ""; (for example: John or Jane)
    static string gender = ""; (for example: Mr. or Mrs.)

我希望将这两者结合在一起:

    static string player = gender+name;

    Console.writeline("Hello "+player);

我希望在我的控制台中看到它:

 Hello Mr.John or Hello Mrs.Jane

我不想提及console.readline部分。我将在其中输入姓名和性别的条目。 感谢

编辑:

这就是我所做的(对不起,花了太长时间):

    static string name = "";
    static string gender = "";
    static string player = name + gender;
    static void Main(string[] args)
    {

        Console.WriteLine("Welcome. What is your name?");
        name = Console.ReadLine();
        Console.WriteLine("Sex?\n-Male\n-Female");
        gender = Console.ReadLine();
        Console.WriteLine("Press Enter to continue");
        Console.ReadLine();
        Console.WriteLine("Welcome"+player);

        Console.ReadLine();
    }

这些结果类似于“欢迎 __

5 个答案:

答案 0 :(得分:1)

这里的问题是player是在类初始化时计算的。所以基本上你要将string.Emptystring.Empty结合起来。每次使用前都不会计算Player

所以你可以在使用它之前做player = name + gender;,但一个好的做法是使用限制在它们所用范围内的变量。由于你在Main中使用了名字和性别,所以使用局部变量

static void Main(string[] args)
{
    string name;
    string gender;

    Console.WriteLine("Welcome. What is your name?");
    name = Console.ReadLine();

    Console.WriteLine("Sex?\n-Male\n-Female");
    gender = Console.ReadLine();

    Console.WriteLine("Press Enter to continue");
    Console.ReadLine();

    Console.WriteLine("Welcome " + gender + name);

    Console.ReadLine();
}

如果您愿意,也可以

string player = gender + name;
Console.WriteLine("Welcome " + player);

但我认为没有临时变量就足够清楚了。如果您需要更复杂的格式,您还可以string.Format,它比一群+运算符更清晰。

 Console.WriteLine(string.Format("Welcome, {0} {1}!", gender, name));

答案 1 :(得分:0)

您已阅读namegender,但在获取其值后,您永远不会将它们合并,因此player仍为空字符串。

这样做,而不是:

player = gender + name;
Console.WriteLine("Welcome "+player);

答案 2 :(得分:0)

Console.ReadLine();
player = gender+name;
Console.WriteLine("Welcome"+player);

这会将字符串设置为已读取的字符串。 你还需要一个if语句来将fe / male改为mr / s。

答案 3 :(得分:0)

问题在于玩家应该是一个功能,而不是一个字符串。

String Player()
{
     return gender + name;
}

这必须在你的主要功能之外。

答案 4 :(得分:0)

如果要合并没有分隔符的字符串,可以使用String.Concat(string firstString,string secondString)。你可以使用String.Join(string separator, string[] stringsToBeJoined)。第一个参数是合并的单个字符串中字符串之间的分隔符,第二个参数是要合并的字符串数组。