Відповіді:
string mystr = string.Format("This is {0}overflow", strVar);
І ви також можете використовувати названі параметри замість індексів.
Це додано станом на C # 6.0 (Visual Studio 2015+).
Приклад:
var planetName = "Bob";
var myName = "Ford";
var formattedStr = $"Hello planet {planetName}, my name is {myName}!";
// formattedStr should be "Hello planet Bob, my name is Ford!"
Це синтаксичний цукор для:
var formattedStr = String.Format("Hello planet {0}, my name is {1}!", planetName, myName);
Додаткові ресурси:
$("This feature is {GetDescription(FEATURE_AMAZING))}");
Ви можете використовувати string.Format
для скидання значень у рядки:
private static readonly string formatString = "This is {0}overflow";
...
var strVar = "stack";
var myStr = string.Format(formatString, "stack");
Альтернативою є використання оператора конкатенації C #:
var strVar = "stack";
var myStr = "This is " + strVar + "overflow";
Якщо ви робите багато спільних змагань, використовуйте StringBuilder
клас, який є більш ефективним:
var strVar = "stack";
var stringBuilder = new StringBuilder("This is ");
for (;;)
{
stringBuilder.Append(strVar); // spot the deliberate mistake ;-)
}
stringBuilder.Append("overflow");
var myStr = stringBuilder.ToString();
C # 6.0
string mystr = $"This is {strVar}overflow";
Для цього немає оператора. Вам потрібно користуватися string.Format
.
string strVar = "stack";
string mystr = string.Format("This is {0}soverflow", strVar);
На жаль string.Format
, це статичний метод, тому ви не можете просто написати "This is {0}soverflow".Format(strVar)
. Деякі люди визначили метод розширення, що дозволяє цей синтаксис.
Використання string.Format
:
string mystr = string.Format("This is {0}overflow", "stack");
Ви повинні використовувати String.Format()
. Синтаксис дещо інший, замість цього використовуються числові заповнювачі.
Приклад:
String.Format("item {0}, item {1}", "one", "two")
Перегляньте http://msdn.microsoft.com/en-us/library/system.string.format.aspx для отримання більш детальної інформації.
У вас є 2 варіанти. Ви можете використовувати String.Format або скористатися оператором конкатенації.
String newString = String.Format("I inserted this string {0} into this one", oldstring);
АБО
String newString = "I inserted this string " + oldstring + " into this one";
String.Format()
використовується StringBuilder. StringBuilder, як правило, більш ефективний при об'єднанні безлічі рядків, але оператор конкатенації ідеально підходить для вимкнення. String.Format()
є корисним, коли форматування потрібно застосувати до виводу, наприклад, для додавання прокладки або ведучих нулів до числових значень. Тож використання String.Format()
в циклі потенційно створить безліч StringBuilders. У цій ситуації краще використовувати один StringBuilder, оголошений поза циклом і AppendFormat()
всередині циклу.
Є ще один спосіб реалізувати заповнювачі за допомогою рядка. Замініть, що це дивно допомагає в певних ситуаціях:
mystr = mystr.Replace("%soverflow", strVar);
Можна використовувати наступний спосіб
Строкова інтерполяція
Спеціальний символ $ ідентифікує літеральний рядок як інтерпольований рядок. напр
string name = "Mark";
string surname = "D'souza";
WriteLine($"Name :{name} Surname :{surname}" );//Name :Mark Surname :D'souza
Інтерпольована рядок - це літеральний рядок, який може містити інтерпольовані вирази. Коли інтерпольована рядок розв’язана на рядок результатів, елементи з інтерпольованими виразами замінюються на рядкові подання результатів вираження.
String.Format
Використовуйте String.Format, якщо вам потрібно вставити значення об'єкта, змінної чи виразу в інший рядок.Напр
WriteLine(String.Format("Name: {0}, Surname : {1}", name, surname));
Використання:
strVar = "stack"
mystr = String.Format("This is {0}", strVar);
Ви можете досягти цього за допомогою програми Expansive: https://github.com/anderly/Expansive