[英]How to get last char(s) of a string in C#
有人可以幫我在 C# 中有一個方法來返回一個字符串作為這個例子:
輸入字符串: 21-0001
--> 返回1
輸入字符串: 21-0025
--> 返回25
輸入字符串: 21-0150
--> 返回150
非常感謝。
它可能是這樣的:
String s = "21-0150";
int result = Int32.Parse(s.Substring(s.LastIndexOf('-') + 1));
您要求一種將結果作為字符串返回的方法:
private string MyMethod(string input)
{
return input.Split("-").Last().TrimStart('0');
}
它在最后一個“-”之后取字符串的最后一部分並刪除前導零。
您可以在 System.Text.RegularExpressions 命名空間上使用 Regexp。
var regexp = new System.Text.RegularExpressions.Regex(@"[1-9]+$");
var match = regexp.Match("21-0001");
if (match.Success)
{
Console.WriteLine(match.Value);
}
您可以嘗試使用正則表達式:
代碼:
using System.Text.RegularExpressions;
...
string result = Regex.Match(input, "(?:[1-9][0-9]*|0)$").Value;
模式解釋: (?:[1-9][0-9]*|0)$
(?: - group start
[1-9][0-9]* - one digit in 1..9 rangem followed by digits in 0..9 range
| - or
0 - single 0
) - end of group
$ - end of string
演示:
string[] tests = new string[] {
"21-0000", // let's add all zeroes case...
"21-0001",
"21-0025",
"21-0150",
"21-1234", // ...and no zeroes case
};
string demo = string.Join(Environment.NewLine, tests
.Select(test => $"{test} --> {Regex.Match(test, "(?:[1-9][0-9]*|0)$").Value}"));
Console.Write(demo);
結果:
21-0000 --> 0
21-0001 --> 1
21-0025 --> 25
21-0150 --> 150
21-1234 --> 1234
嘗試這個:
static string GetResult(string i) {
return int.TryParse(i.Substring(i.IndexOf('-') + 1), out int r) ? r.ToString() : string.Empty;
}
我嘗試了您提供的所有這些示例,它們都按預期工作。 非常感謝。
var number = int.Parse(Input.IncidentNumber.Substring(3));
int 結果 = Int32.Parse(Input.IncidentNumber.Substring(Input.IncidentNumber.LastIndexOf('-') + 1));
var regexp = new System.Text.RegularExpressions.Regex(@"[1-9]+$");
var match = regexp.Match(Input.IncidentNumber);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.