Ana*_*tic 1 .net c# sql ibm-midrange
我将字符串存储在一个数组中.一个例子是:
ssnDateTime = "123456789|20140225|114528"
Run Code Online (Sandbox Code Playgroud)
我试图将每个子字符串存储到它自己的变量中,如下所示:
string SSN = ssnDateTime.Substring(0, 9);
string Date = ssnDateTime.Substring(ssnDateTime.Length - 15, 8);
string Time = ssnDateTime.Substring(19);
Run Code Online (Sandbox Code Playgroud)
这适用于我的10个测试记录中的5个,但是第6个具有时间值91514,导致我的3个字符串:
SSN = 123456789
Date = |2014022
Time = 91514
Run Code Online (Sandbox Code Playgroud)
当我的应用程序试图运行时INSERT INTO Library.TrackingTable (SSN, DATE, TIME) VALUES ("123456789", "|2014021", "91514"),AS400自然会抱怨|Date值.
有什么方法可以使用分隔符从主字符串中获取每个SSN,Date和Time值,无论子字符串长度如何(当时间值比6个字符短时,防止上述问题)?
SSN自然会一直是9个字符,而Date将是8个字符的格式20140225,但Time可以是5个或6个字符,具体取决于值.
似乎是完美适合string.Split
ssnDateTime = "123456789|20140225|114528"
string[] subs = ssnDateTime.Split('|');
string SSN = subs[0];
string Date = subs[1];
string Time = subs[2];
Run Code Online (Sandbox Code Playgroud)
string.Split返回一个字符串数组,该字符串在作为参数传递的分隔符处拆分原始字符串.
当然这段代码不会检查生成的字符串数组是否包含真正的三个元素,在生产环境中检查是否像
if(subs.Length > 0
date = subs[1];
if(subs.Length > 1)
Time = subs[2];
Run Code Online (Sandbox Code Playgroud)
应该是强制性的....
| 归档时间: |
|
| 查看次数: |
801 次 |
| 最近记录: |