我有一个随机字符串,需要知道其末尾的非字母/非数字字符的数量。
例如:
"Some text."应该导致1
"More text 123 !.?"应该导致4(包括空格)
"Even more text 123"应为0
我怎样才能做到这一点?
您可以尝试Linq:
string source = "More text 123 !.?";
int result = source
.Reverse()
.TakeWhile(c => !char.IsLetterOrDigit(c))
.Count();
Run Code Online (Sandbox Code Playgroud)
演示:
string[] tests = new string[] {
"Some text.",
"More text 123 !.?",
"Even more text 123"
};
string demo = string.Join(Environment.NewLine, tests
.Select(s => $"{s,-30} : {s.Reverse().TakeWhile(c => !char.IsLetterOrDigit(c)).Count()}"));
Console.Write(demo);
Run Code Online (Sandbox Code Playgroud)
结果:
Some text. : 1
More text 123 !.? : 4
Even more text 123 : 0
Run Code Online (Sandbox Code Playgroud)