VB.NET字符串操作 - 仅限一个字母大写字母

时间:2010-10-06 13:42:15

标签: vb.net string

所以我有一个字符串“NEW”。

将该字符串转换为“新”的SIMPLEST方式是什么。

基本上我现在正在这样做:

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

我宁愿不使用case语句,因为它只需要更改一个参数,并且都附加了“Car”。

4 个答案:

答案 0 :(得分:5)

使用“旧”字符串函数,您可以使用:

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

将字符串转换为“正确的大小写”。但是,在您的情况下,这可能会导致(如果我读右)“Usercar”,而不是“UserCar”。

答案 1 :(得分:0)

您可以使用:

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

此致

答案 2 :(得分:0)

如果这是您打算经常使用的内容,您可以考虑为其创建扩展功能:

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()

返回“已使用”

显然你可以像Guilherme或Konrad的答案一样更有效地改变功能体,但如果你经常计划做这样的事情,或者如果你只是一个粉丝,那么为此做一个扩展功能会非常有用。可读性。

答案 3 :(得分:0)

这就是我所做的!

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"))