programing

문자열의 첫 번째 문자 대문자화

mailnote 2023. 6. 30. 22:32
반응형

문자열의 첫 번째 문자 대문자화

첫 번째 문자 문자열을 대문자로 쓰려고 합니다.sent정렬하여arr코드에서 작동하지 않는 부분은Right코드가 오류를 반환하도록 하는 함수입니다.해결책은 무엇일까요?

For Each sent In arr
    sent = UCase(Left(sent, 1)) & Right(sent, Len(sent) - 1)
    arr(i) = sent
    i = i + 1
Next

그냥 사용할 수 있습니다.StrConv()이에 대한 함수. 예:

For i = LBound(arr) To UBound(arr)
   sent = arr(i)
   arr(i) = StrConv(sent, vbProperCase)
Next

또는 루프 없이:

arr = Split(StrConv(Join$(arr, " "), vbProperCase), " ")

사용하는 것이 더 쉬울 것입니다.Mid문자 대문자화 이후에 모든 것을 구축하는 기능.이 기능은 전체 길이를 지정할 필요가 없습니다.

For i = LBound(arr) To UBound(arr)
    sent = arr(i)
    ' Capitalize the first letter, then append everything else.
    sent = UCase(Left(sent, 1)) & Mid(sent, 2)
    arr(i) = sent
Next

또한, 당신은 그냥 반복할 수 있습니다.arr사용.i열거자로 지정합니다.별도의 열거자를 사용하여 인덱스 업데이트를 혼합하고 일치시키면 문제가 발생할 수 있습니다.

사용의 차이점strConv와 함께vbPropercase솔루션을 사용하여UCase(left(xx,1)) & mid(xx,2)그것은vbPropercase모든 첫 번째 문자를 대문자로 변경하고 다른 모든 문자를 소문자로 변경합니다.항상 원하는 것은 아닙니다. 때로는 첫 번째를 대문자로, 나머지를 소문자로 사용할 수도 있습니다.

그런 다음 약간 개선된 솔루션을 사용할 수 있습니다.

UCase(Left(<string>,1)) & LCase(Mid(<string>,2))

다음을 시도합니다.

NewArr As List<string> NewArr = new List<string>()

For Each sent As String In arr    
    NewArr.Add(Application.WorksheetFunction.Proper(sent))

Next sent

arr = NewArr.ToArray()

나의 경우, 가장 좋은 해결책은 유사한 방법이었습니다.Mid= 바꾸기(문자열, 왼쪽(문자열, 1), UCase(문자열, 1), , 1)

StrConv(myString, vbProperCase)

언급URL : https://stackoverflow.com/questions/27669255/capitalizing-first-letter-of-strings

반응형