分离字符串的最有效方法

And*_*rew 7 c# string optimization split string-split

我有这个字符串:

"B82V16814133260"

什么是从中获取两个字符串的最有效方法:

left part String:"B82V"rigth part string:"16814133260"

规则是这样的:取右边的所有数字并从中创建字符串,然后取出提醒并将其放入另一个字符串中.

这是我的解决方案,但它太笨重了!如何做到简短有效?

        String leftString = "";
        String rightString="";

        foreach (char A in textBox13.Text.Reverse())
        {
            if (Char.IsNumber(A))
            {
                rightString += A;
            }
            else
            {
                break;
            }
        }

        char[] arr = rightString.ToArray();
        Array.Reverse(arr);

        rightString=new string(arr);
        leftString = textBox13.Text.Replace(rightString, "");
Run Code Online (Sandbox Code Playgroud)

Aus*_*nen 14

这产生了你所期望的:

var given = "B82V16814133260";
var first = given.TrimEnd("0123456789".ToCharArray());
var rest = given.Substring(first.Length);

Console.Write("{0} -> {1} -- {2}", given, first, rest);
//  B82V16814133260 -> B82V -- 16814133260
Run Code Online (Sandbox Code Playgroud)

  • 优雅的解决方案.我不知道TrimEnd. (3认同)

mow*_*ker 5

好吧,另一个答案可能更好,但无论如何我写了这个,所以我发布了它:

需求:

using System.Text.RegularExpressions;
Run Code Online (Sandbox Code Playgroud)

码:

string str = "B82V16814133260";
string[] match = Regex.match(str, @"^([\d\w]+?\w)(\d+)$").Groups;
string left = match[1];
string right = match[2];
Run Code Online (Sandbox Code Playgroud)