如何将我的字符串拆分为 3 个分隔的字符串(无论子字符串长度如何)



我正在将字符串存储在数组中。一个例子是:

ssnDateTime = "123456789|20140225|114528"

我试图将每个子字符串存储到它自己的变量中以供使用,如下所示:

string SSN  = ssnDateTime.Substring(0, 9);
string Date = ssnDateTime.Substring(ssnDateTime.Length - 15, 8);
string Time = ssnDateTime.Substring(19);

这对我的 10 条测试记录中的 5 条工作正常,但第 6 条的时间值为 91514 ,导致我的 3 个字符串是:

SSN = 123456789
Date = |2014022
Time = 91514

当我的应用程序尝试运行INSERT INTO Library.TrackingTable (SSN, DATE, TIME) VALUES ("123456789", "|2014021", "91514")时,AS400自然会抱怨日期值中的|

有什么方法可以使用分隔符从主字符串中获取每个 SSN、日期和时间值,无论子字符串长度如何(以防止在时间值短于 6 个字符时出现上述问题)?

SSN 自然会始终是 9 个字符,Date 将采用 8 个字符的 20140225 格式,但时间可以是 5 或 6 个字符,具体取决于值。

似乎非常适合字符串。分裂

 ssnDateTime = "123456789|20140225|114528"
 string[] subs = ssnDateTime.Split('|');
 string SSN  = subs[0];
 string Date = subs[1];
 string Time = subs[2];

字符串。Split 返回一个字符串数组,用于拆分作为参数传递的分隔符处的原始字符串。

当然,此代码不会检查生成的字符串数组是否真的包含三个元素,在生产环境中,检查类似

 if(subs.Length > 0
     date = subs[1];
 if(subs.Length > 1)
    Time = subs[2];

应该是强制性的。

string[] parts = "123456789|20140225|114528".Split('|');

http://www.dotnetperls.com/split

相关内容

  • 没有找到相关文章

最新更新