2013-09-11 3 views
1

Я проверил большинство вопросов, которые могут содержать мое решение, но я не смог найти их. Или, может быть, я не понял. Итак, вот мой вопрос:Как объединить две разные строки в одну строку?

Я хочу объединить две строки в одну и продолжать использовать ее в одиночку.

Мои строки:

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. Будут записи, в которых я буду набирать имя и пол. Благодаря

EDIT:

Это то, что я (К сожалению, это займет слишком много времени):

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(); 
    } 

Эти результаты, как "Добро пожаловать __"

+4

Я не вижу проблемы ... – UIlrvnd

+0

Вы пробовали это? –

+0

Вы уже сделали это - static string player = gender + name; – Lev

ответ

0

Проблема в том, что игрок должен быть функцией, а не строкой.

String Player() 
{ 
    return gender + name; 
} 

Это должно быть вне вашей основной функции.

0

Читаешь name и gender, но вы никогда не комбинируете их после получения их значения, поэтому player по-прежнему остается пустой строкой.

Сделайте это, вместо того, чтобы:

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

Проблема здесь состоит в том, что player вычисляется при инициализации класса. Таким образом, в основном вы объединяете string.Empty и string.Empty. Player не рассчитывается перед каждым использованием.

Так вы можете просто сделать player = name + gender; перед его использованием, но хорошей практикой является использование переменных, сдержанных в области, в которой они используются. Поскольку имя и пол используются в основном, используйте локальные переменные.

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)); 
0
Console.ReadLine(); 
player = gender+name; 
Console.WriteLine("Welcome"+player); 

Это позволит установить струны на то, что они были читаться. Вам также понадобится инструкция if, чтобы изменить fe/male на mr/s.

0

Вы можете использовать String.Concat(string firstString,string secondString), если вы хотите объединить строки без разделителя. И вы можете использовать String.Join(string separator, string[] stringsToBeJoined). Первым параметром является разделитель между строками в объединенной одиночной строке, а второй параметр - массив строк, которые будут объединены.

Смежные вопросы