我有一些如下句子:
i have a river
he is liar
great
hello miss
there was a river in this area
现在我想提取最后10个字符并获得此结果
ve a river
he is liar
great
hello miss
this area
我试图用这个
来达到预期的效果mystring.Substring(mystring.Length - 10)
以上代码适用于长度大于9的字符串,但great
失败如何使用最少的vb.net代码来解决这个问题?
答案 0 :(得分:4)
您需要使用Math.Min限制子字符串,以便它可以从字符串中获取10或尽可能多的子字符串。
Table table = new Table();
答案 1 :(得分:3)
Strings.Right Method会做你想做的事。
Dim ss = {"i have a river", "he is liar", "great", "hello miss", "there was a river in this area"}
For Each s In ss
Console.WriteLine(Strings.Right(s, 10))
Next
输出:
ve a river
he is liar
great
hello miss
this area
我认为最后一个字符串开头的缺失空间是问题中的转录错误。
答案 2 :(得分:1)
你可以反转字符串(将其转换为字符数组),从start开始取10个字符,然后将其反转并通过连接数组转换为字符串。
String.Join("", mystring.Reverse().Take(10).Reverse())
答案 3 :(得分:1)
Microsoft.VisualBasic.Strings.Right(mystring, 10)
我发现另一个简单而有效的解决方案:
mystring.Substring(Math.Max(0,mystring.Length - 10))