在vb.net中从长度可变的字符串中提取最后10个字符
我有以下几句话:在vb.net中从长度可变的字符串中提取最后10个字符,.net,vb.net,.net,Vb.net,我有以下几句话: 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如何使用最少
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代码行来克服此问题?您需要使用Math.Min来限制子字符串,以便它从字符串中获取10个或尽可能多的子字符串
mystring.Substring(mystring.Length - Math.Min(10, mystring.Length))
您可以反转字符串(将其转换为字符数组),从开始处提取10个字符,然后将其反转并通过加入数组转换为字符串
String.Join("", mystring.Reverse().Take(10).Reverse())
他们会做你想做的事
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
我假设最后一个字符串开头缺少空格是问题中的一个转录错误
Microsoft.VisualBasic.Strings.Right(mystring, 10)
我发现了另一个简单但有效的解决方案:
mystring.Substring(数学最大值(0,mystring.Length-10))
如果mystring.Length()大于10,那么可以使用2个数字的min()函数吗?i、 e.min(10,mystring.Length)@boethius-是的,它可以工作。可能重复的可能重复的