是否可以查看字符串中定义的长度
本文关键字:定义 字符串 是否 | 更新日期: 2023-09-27 17:51:10
c#中有没有一种方法可以查看字符串中定义的字符数?
意思是——我有以下号码需要更改为此编号的336-5010-0000-00-10
-336-5993-0000-00-10
我只想检查第二段数字是否在2999
和6000
之间
我正在从CSV中读取这些数据,我只是不想这个声明被重复一百万次
if (columns[0].Contains(“5010”)) columns[0] = columns[0].Replace(“5010”, @”5993”);
string test = "336-5010-0000-00-10";
string foo = Regex.Replace(test, @"('d+'-)(2999|[3-5][0-9]{3}|6000)((-'d+){3})", "${1}5993${3}");
另类疯狂LINQ答案:
string foo2 = string.Join("-", from number in test.Split('-').Select((str, index) => new { str = str, index = index })
let num = Convert.ToInt32(number.str)
select number.index == 1 && num >= 2999 && num <= 6000 ? "5993" : number.str);
http://dotnetfiddle.net/yzROoK
编辑:更明显的正则表达式。
您想要
- 将"-"字符上的字符串拆分为一个名为stringParts的字符串[]
- 将stringParts[1]转换为整数
- 对步骤2中的整数值进行验证
string[] stringParts = columns[0].Split('-');
int valueOfConcern = Convert.ToInt32(stringParts[1]);
if (valueOfConcern >= 2999 && valueOfConcern <= 6000)
{
//take your action
}
string numberStr = "336-5010-0000-00-10";
int number = int.Parse(numberStr.Substring(4, 4));
numberStr.Substring(4, 4)
只提供从第4个字符开始的四位数字,int.Parse()
将其转换为数字。
然后您可以测试number
是否在您指定的范围内,替换它,等等。