簡體   English   中英

從vb.net中的可變長度字符串中提取最后10個字符

[英]Extract last 10 characters from a string of variable length in 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如何使用最少的vb.net代碼來克服這個問題?

您需要使用Math.Min限制子字符串,以便它可以從字符串中獲取10或盡可能多的子字符串。

mystring.Substring(mystring.Length - Math.Min(10, mystring.Length))

Strings.Right方法將做你想要的。

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

我假設最后一個字符串開頭的缺失空間是問題中的轉錄錯誤。

你可以反轉字符串(將其轉換為字符數組),從start開始取10個字符,然后將其反轉並通過連接數組轉換為字符串。

String.Join("", mystring.Reverse().Take(10).Reverse())
Microsoft.VisualBasic.Strings.Right(mystring, 10)

另一個簡單但有效的解決方案我發現

mystring.Substring(Math.Max(0,mystring.Length - 10))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM