programing

String을 사용하는 이유포맷?

bestprogram 2023. 4. 7. 22:00

String을 사용하는 이유포맷?

'우리'를 요?String.FormatC# VB로 하다.연산자가 (NET)&및 VB에서는+C# 서 c?

된된차 ?이 ?? ????들 ''를 쓰는 데 이 많은 죠?String.Format나는 매우 궁금하다.

몇 가지 이유를 알 수 있습니다.

가독성

string s = string.Format("Hey, {0} it is the {1}st day of {2}.  I feel {3}!", _name, _day, _month, _feeling);

vs:

string s = "Hey," + _name + " it is the " + _day + "st day of " + _month + ".  I feel " + feeling + "!";

포맷 지정자(커스텀 포맷터를 쓸 수 있는 것도 포함)

string s = string.Format("Invoice number: {0:0000}", _invoiceNum);

vs:

string s = "Invoice Number = " + ("0000" + _invoiceNum).Substr(..... /*can't even be bothered to type it*/)

문자열 템플릿 지속성

데이터베이스에 문자열 템플릿을 저장하려면 어떻게 해야 합니까?문자열 형식 지정 시:

_id         _translation
  1         Welcome {0} to {1}.  Today is {2}.
  2         You have {0} products in your basket.
  3         Thank-you for your order.  Your {0} will arrive in {1} working days.

vs:

_id         _translation
  1         Welcome
  2         to
  3         .  Today is
  4         . 
  5         You have
  6         products in your basket.
  7         Someone
  8         just shoot
  9         the developer.

읽기 쉽고 연산자를 몇 명 더 추가하는 것 외에도 응용 프로그램이 국제화되면 유용합니다.대부분의 경우 변수는 숫자 또는 키워드이며 언어마다 순서가 다릅니다.String을 사용합니다.포맷에서는 코드가 변경되지 않고 다른 문자열이 리소스 파일에 들어갈 수 있습니다.그래서 결국 암호는

String.Format(resource.GetString("MyResourceString"), str1, str2, str3);

자원 문자열이 결국에 도달하는 동안

어::"blah blah {0} blah blah {1} blah {2}"

시어어 russian:"{0} blet blet blet {2} blet {1}"

러시아어에는 사물을 어떻게 다루는지에 대한 규칙이 달라서 순서가 다르거나 문장 구조가 다를 수 있습니다.

먼저, 나는 발견합니다.

string s = String.Format(
    "Your order {0} will be delivered on {1:yyyy-MM-dd}. Your total cost is {2:C}.",
    orderNumber,
    orderDeliveryDate,
    orderCost
);

보다 읽기, 쓰기, 유지보수가 훨씬 쉽다

string s = "Your order " +
           orderNumber.ToString() +
           " will be delivered on " +
           orderDeliveryDate.ToString("yyyy-MM-dd") +
           "." +
           "Your total cost is " +
           orderCost.ToString("C") + 
           ".";

다음과 같은 기능이 얼마나 유지보수가 용이한지 확인해 보십시오.

string s = String.Format(
    "Year = {0:yyyy}, Month = {0:MM}, Day = {0:dd}",
    date
);

다 하다'를 반복해야 요.date아, 아, 아, 아, 아, 아, 아, 아, 아, 아.

번째, 「」, 「」의 .String.Format는 단순한 오래된 연결을 사용하는 것보다 읽기, 쓰기 및 유지보수가 용이한 방식으로 문자열 출력에 뛰어난 유연성을 제공합니다.,, 화, 화, 문, 문, 문, concerns, concerns, concerns, addition, addition, addition, addition, addition, addition, addition, addition, addition, addition, addition, addition, addition, addition, addition, , addition, addition,String.Format.

, 셋, 포, 포, 포String.Format결결 츠, a, 면, 면, behind, behind, behind, behind, behind, behind를 사용합니다.StringBuilder페인트공 슐레미엘 문제를 피할 수 있습니다.

몇 가지 이유:

  1. String.Format()매우 강력합니다.형식 문자열에서 간단한 형식 표시기(예: 고정 너비, 통화, 문자 길이)를 사용할 수 있습니다.Enum , 복잡한 만의 형식 .enum, enum, enum, enum, enum, enum, enum, enum, enum, enum, enum, enum, enum, enum, enum, enum, unalization 등입니다.
  2. 설정 파일에 형식 문자열을 넣는 것으로, 몇개의 강력한 작업을 실시할 수 있습니다.
  3. String.Format()빠를 수 .StringBuilder 머신을에 배치하는 . concatencing은 cring concatination으로 지정합니다.넷은 비교적 느리다.작은 문자열의 경우 차이는 무시할 수 있지만 문자열의 크기와 대체 값의 수가 증가하면 알 수 있습니다.
  4. String.Format()는 실제로 C, C, 의 배리언트를 에서 온 더합니다.printf()★★★★★★ 。

StringBuilder.AppendFormat()String.Format()실제로 이 방법을 사용하고 있습니다*, 그리고 다음 단계로 넘어갑니다.StringBuilder에서는, 어프로치를 직접 할 수 즉, 으로 「 어프로치」를 사용합니다..Append()는 (접속)을 ('연결'을 사용합니다..AppendFormat()른른른른


* [edit] 원래 답변은 8년이 되었습니다.그 후 문자열 보간 추가 시 변경되었을 가능성이 있는 표시를 보았습니다.네. 하지만 아직 변경 사항을 확인하기 위해 참조 출처에 다시 들어가지는 않았습니다.

String.Format 는 연결 연산자 외에 문자열에 추가되는 각 항목의 특정 형식을 지정하는 기능 등 많은 옵션을 추가합니다.

가능한 것에 대한 자세한 내용은 MSDN의 Composite Formating 섹션을 참조하십시오.그것이 의 장점을 설명해 준다.String.Format)xxx.WriteLine및 컴포지트 포맷을 지원하는 기타 메서드).

이 질문에는 퍼포먼스 측면에 관한 흥미로운 내용이 포함되어 있습니다.

으로 추천하고 건 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」string.Format읽기 쉬운 이유로 퍼포먼스가 중요한 경우를 제외하고요.

string.Format("{0}: {1}", key, value);

보다 읽기 쉽다

key + ": " + value

예를 들어.또한 우려 사항을 잘 분리할 수 있습니다.즉,

string.Format(GetConfigValue("KeyValueFormat"), key, value);

에 키 값 ."{0}: {1}"로로 합니다."{0} - {1}"을 사용하다

string.Format에는 정수, 날짜 형식 등 다양한 형식 제공도 포함되어 있습니다.

않는 것이 .'string +"Value"+ string'로컬라이제이션 때문입니다.현지화가 발생하는 경우 현지화된 문자열의 형식이 올바르게 지정되어야 합니다.이 형식은 코드화 대상 언어와는 크게 다를 수 있습니다.

예를 들어, 다른 언어로 다음 오류를 표시해야 합니다.

MessageBox.Show(String.Format(ErrorManager.GetError("PIDV001").Description, proposalvalue.ProposalSource)

어디에

'ErrorCollector.GetError("ERR001").ErrorDescription' returns returns returns returns returns returns returns returns returns returns returns returns returns like like like like 등의 문자열을 합니다."Your ID {0} is not valid"이 메시지는 여러 언어로 현지화해야 합니다.C# + 를를를를를를를를를를를를를 。「 」 「 」 「」. 맷합니니다다

언급URL : https://stackoverflow.com/questions/4671610/why-use-string-format