문자열을 어떻게 보간합니까?
C #에서 다음을 수행하고 싶습니다 (Python 배경에서 제공됨).
strVar = "stack"
mystr = "This is %soverflow" % (strVar)
문자열 내부의 토큰을 외부 값으로 어떻게 바꾸나요?
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);
추가 자료 :
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";
현재 Visual Studio 2015를 C # 6.0과 함께 사용하는 경우 다음을 시도해보세요.
var strVar = "stack";
string str = $"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 를 참조하십시오.
두 가지 옵션이 있습니다. 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.Replace를 사용하여 자리 표시자를 구현하는 또 다른 방법이 있습니다.
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 로이를 수행 할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/9354154/how-do-i-interpolate-strings
'IT story' 카테고리의 다른 글
iPhone의 NSString에서 HTML 태그 제거 (0) | 2020.08.10 |
---|---|
iphone : 충돌 보고서에서 .dSYM 파일이있는 위치 (0) | 2020.08.10 |
T-SQL에 삼항 조건 연산자가 있습니까? (0) | 2020.08.09 |
새 탭에서 파일을 여는 방법? (0) | 2020.08.09 |
CSV를 XML 파일로 변환하는 Java lib 또는 앱? (0) | 2020.08.09 |