我有以下价值
string value = "11,.Ad23";
int n;
bool isNumeric = int.TryParse(value, out n);
Run Code Online (Sandbox Code Playgroud)
我控制字符串是否为数字.如果字符串不是数字且非数字,我需要获得非数字值,如下所示
结果必须如下
,.Ad
Run Code Online (Sandbox Code Playgroud)
我怎么能在c#中做到这一点?
如果非数字是连续的并不重要,那很简单:
string nonNumericValue = string.Concat(value.Where(c => !Char.IsDigit(c)));
Run Code Online (Sandbox Code Playgroud)
在线演示:http://ideone.com/croMht
如果您使用.NET 3.5.正如评论中所提到的那样String.Concat(或者String.Join在Dmytris的答案中)没有过载IEnumerable<string>,因此你需要创建一个数组:
string nonNumericValue = string.Concat(value.Where(c => !Char.IsDigit(c)).ToArray());
Run Code Online (Sandbox Code Playgroud)
这需要所有非数字.如果你想取中间部分,那么跳过数字,然后取全部直到下一个数字:
string nonNumericValue = string.Concat(value.SkipWhile(Char.IsDigit)
.TakeWhile(c => !Char.IsDigit(c)));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1028 次 |
| 最近记录: |