Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 倒首字母大写?_Vb.net_.net 3.5 - Fatal编程技术网

Vb.net 倒首字母大写?

Vb.net 倒首字母大写?,vb.net,.net-3.5,Vb.net,.net 3.5,您好,我只是想知道是否有任何方法可以颠倒这个代码,使第一个字母是小写,其余的单词是大写 Dim s As String = "the quick brown fox jumps over the lazy dog" Dim s2 As String = StrConv(s, VbStrConv.ProperCase) MessageBox.Show(s2) 我使用的是.NETFrameworks3.5 答案就在这里!谢谢蒂姆 Dim s As String = TextBox1.Text Di

您好,我只是想知道是否有任何方法可以颠倒这个代码,使第一个字母是小写,其余的单词是大写

Dim s As String = "the quick brown fox jumps over the lazy dog"
Dim s2 As String = StrConv(s, VbStrConv.ProperCase)
MessageBox.Show(s2)
我使用的是.NETFrameworks3.5

答案就在这里!谢谢蒂姆

Dim s As String = TextBox1.Text
Dim s2 = String.Join(" ", s.Split() .Select(Function(w)UppercaseAllButFirst(w)).ToArray())
TextBox2.Text = s2

您可以创建一个新函数:

Public Shared Function UppercaseAllButFirst(s As String) As String
    ' check for empty string
    If (String.IsNullOrEmpty(s)) Then
        Return String.Empty
    End If
    Return Char.ToLower(s(0)) & s.Substring(1).ToUpper()
End Function
然后您可以这样使用它:

Dim s2 = String.Join(" ", s.Split().Select(Function(w) UppercaseAllButFirst(w)))
.NET 3.5,
String.Join
需要一个数组:

String.Join(" ", s.Split().Select(Function(w) UppercaseAllButFirst(w)).ToArray())

你可以这样做:

dim s1 as string="the quick brown fox jumps over the lazy dog"
dim s2 as string= _ 
     string.Join(" ",s1.Split(" ").Select (function(s) _
     s.Substring(0,1).ToLower()+s.Substring(1).ToUpper()).ToArray())
这将获得以下输出:

tHE qUICK bROWN fOX jUMPS oVER tHE lAZY dOG

我不认为有一个现成的方法来解决这个问题——为什么要有呢?总的来说,这是一个无用的操作(你什么时候需要它?)。但是自己写也很简单。创建自己的扩展方法而不是在标题中添加solved,如果提姆的答案有用的话,请向上投票并标记。谢谢:)我不知道怎么做,这不符合OP的要求。@KonradRudolph:编辑了我的答案。我试过了,但似乎无法让它工作,在s中找不到。Split@T3rr11:什么意思是“在s.Split中找不到s”?你使用哪个.NET framework版本?哇,这个代码太复杂了。该函数可以通过将最后一条语句替换为
Char.ToLower(s(0))&s.Substring(1).ToUpper()
来简化。它表示“无法将类型为'WhereSelectArrayIterator`2[System.String,System.String]'的对象强制转换为类型'System.String[]”。更新了答案。看一看