Обработка строк в VB.NET - заглавные буквы - PullRequest
0 голосов
/ 06 октября 2010

Итак, у меня есть строка «NEW».

Как проще всего преобразовать эту строку в «New».

По сути, сейчас я делаю это:

Case "NEW"
    makes = connector.GetMakesByYear(_AuthorizationKey, "NewCar", CDate(Now), Year)
Case "USED"
    makes = connector.GetMakesByYear(_AuthorizationKey, "UsedCar", CDate(Now), Year)

И я бы предпочел не использовать оператор case, потому что это только один параметр, который нужно изменить, и оба добавляются с помощью "Car".

Ответы [ 4 ]

5 голосов
/ 06 октября 2010

Используя «старые» строковые функции, вы можете использовать это:

result = StrConv("hello world", VbStrConv.ProperCase)

для преобразования строки в «правильный регистр».Тем не менее, в вашем случае это может привести к (если я правильно прочитал) «Usercar», а не «UserCar».

0 голосов
/ 16 сентября 2015

Вот что я сделал!

Function InitUpperCase(ByVal str As String) As String
    If String.IsNullOrEmpty(str) Then
        Return str
    End If
    Dim charlist() As Char = str.ToCharArray
    charlist(0) = Char.ToUpper(charlist(0))
    Return New String(charlist)
End Function

чтобы увидеть вывод

MessageBox.Show(InitUpperCase("my first letter"))
0 голосов
/ 06 октября 2010

Если вы планируете часто использовать это, вы можете создать для него функцию расширения:

Public Module ObjectExtensions
    <System.Runtime.CompilerServices.Extension()>
    Public Function firstLetterToUpper(ByVal s As String) As String
        Return Char.ToUpper(s.First()) + New String(s.Skip(1).Select(Function(x) Char.ToLower(x)).ToArray())
    End Function
End Module

Тогда вы можете сделать что-то вроде этого:

"USED".firstLetterToUpper()

Что возвращает "Используется"

Очевидно, что вы можете изменить тело функции с помощью чего-то более эффективного, например, ответа Гильерма или Конрада, но создание функции расширения для этого может быть весьма полезным, если вы планируете делать что-то подобное часто, или если вы просто поклонник читаемость.

0 голосов
/ 06 октября 2010

Вы можете использовать:

String.Format("{0}{1}", carType.Substring(0, 1).ToUpper(), carType.Substring(1).ToLower())

Привет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...