我在richtextbox1中有一个文本,我想提取字符串的每个3个字符,依此类推:
richtextbox1.text = "It's Chrismas time"
结果,从右到左的顺序为3:“Isrmte”
结果,从左到右依次为3:“etmrsI”
我该怎么办?
代码可以在C#2010中。我将翻译为vb.net 2010。
答案 0 :(得分:3)
richtextbox1.text.Where((c, i) => i % 3 == 0)
怎么样?
或者RTL:richtextbox1.text.Reverse().Where((c, i) => i % 3 == 0)
在VB中:richtextbox1.text.Where(Function(c, i) i Mod 3 = 0)
但是,您的示例并未显示提取每个第三个字符 - 您的示例会忽略空格,您可以这样做:
text.Where(Function(c) Not Char.IsWhiteSpace(c)).Where(Function(c, i) i Mod 3 = 0)
要获取文本并将其放入另一个文本框,您可以这样做:
textbox2.text = String.Join("", textbox1.text
.Where(Function(c) Not Char.IsWhiteSpace(c))
.Where(Function(c, i) i Mod 3 = 0))
这是我直接从VS 2010复制的测试代码:
Dim text = "It's Chrismas time"
Console.WriteLine(String.Join("",
text.Where(Function(c) Not Char.IsWhiteSpace(c)) _
.Where(Function(c, i) i Mod 3 = 0)))