2014-02-25 30 views
1

我将字符串存储在数组中。一个例子是:如何将我的字符串分成3个分隔字符串(不管SubString长度)?

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个字符,日期将是20140225的8个字符格式,但时间可以是5或6个字符,具体取决于值。

+2

你有没有使用string.Split(炭)? – Steve

+0

我不确定我对这些SSN是纯文本的感觉。 – valverij

回答

6

似乎是一个非常适合string.Split

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

string.Split返回字符串分割在作为参数传递的分离器中的原单串的阵列。

当然这个代码不检查结果字符串数组包含真三要素,在生产环境中像

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

应该是强制性....

+1

非常感谢!我知道我之前做过这样的一种方式,但是不能为我的生活回想起来。这是我试图想到的解决方案:) –

+3

Downvoter,谨慎解释? – Steve

相关问题