簡體   English   中英

如何在C#中獲取字符串的最后一個字符

[英]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.

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