2010-10-06 76 views
0

所以我有一個字符串「新」。VB.NET字符串操作 - 只有一個字母帽的帽子

什麼是最簡單的方法來將該字符串轉換爲「新」。

基本上現在我這樣做:

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

而且我不喜歡使用一個case語句,因爲它是唯一一個需要改變的參數,並且都與「車」追加。

回答

3

使用「舊」的字符串函數,您可以使用此:

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

爲一個字符串爲「適當情況下」轉換。但是,在你的情況下,這可能會導致(如果我讀這個權利)「Usercar」,而不是「UserCar」。

+0

我相信斯科特希望資本僅適用於「新」或「二手」作爲一個變量,然後追加「汽車」該變量 – 2010-10-06 13:48:13

+0

正確的。所以這應該適用於此。 – Scott 2010-10-06 13:49:55

0

您可以使用:

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

問候

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

返回「已使用」

很明顯,你可以用一些更高效的像吉列爾梅的或康拉德的回答改變函數體,但製作的擴展功能,用於這可能是非常有用的,如果你對經常做這樣的事情計劃,或者如果你只是可讀性的粉絲。

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