답변:
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();
그것에 대한 운영자가 없습니다. 을 사용해야 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.Format("item {0}, item {1}", "one", "two")
자세한 내용 은 http://msdn.microsoft.com/en-us/library/system.string.format.aspx 를 참조하십시오.
두 가지 옵션이 있습니다. 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()
숫자 값에 패딩 또는 선행 0을 추가하는 것과 같이 출력에 서식을 적용해야 할 때 유용합니다. 따라서 String.Format()
루프에서 사용 하면 잠재적으로 많은 StringBuilder를 인스턴스화 할 수 있습니다. 이 경우 루프 외부와 루프 AppendFormat()
내부에 선언 된 단일 StringBuilder를 사용하는 것이 좋습니다 .
다음과 같은 방법으로 사용할 수 있습니다.
문자열 보간
$ 특수 문자는 문자열 리터럴을 보간 된 문자열로 식별합니다. 예 :
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 로이를 수행 할 수 있습니다.