用3个连字符C#解析字符串

时间:2015-09-29 20:25:05

标签: c#

我有字符串COO70-123456789-12345-1。我需要根据" - "进行解析。不是子串的长度并使用解析的值。我曾尝试使用正则表达式,但有问题。请建议。 在我拆分值之后,我需要使用每个值:字符串A = COO70,int B = 123456789,int C = 12345,short D = 1。如何在不同的变量A,B,C,D中得到它。

string[] results = UniqueId.Split('-');

string A = results[0];
string B = results[1];
string C = results[2];
int k_id = Convert.ToInt32(k_id);
string D = results[3];
short seq = Convert.ToInt16(seq);

4 个答案:

答案 0 :(得分:1)

string s = "COO70-123456789-12345-1";
string[] split = s.Split('-'); //=> {"COO70", "123456789", "12345", "1"}

答案 1 :(得分:0)

使用indexOf

在第一个连字符使用之前查找所有内容:

string original= "COO70-123456789-12345-1";
string toFirstHyphen=original.Substring(0,original.IndexOf("-"));

或者,如果您希望每个部分都使用拆分,就像上面的示例一样。

答案 2 :(得分:0)

您可以根据需要验证输入是否已格式化,然后拆分以获取部件。

defaultconnection to MS sql

答案 3 :(得分:0)

所以听起来你首先要拆分它,然后将它存储到你的值中。

我会做这样的事情:

var myString = "COO70-123456789-12345-1";
var stringSet = myString.Split("-"); // This returns an array of values.

现在我们需要验证我们只收到4个子字符串:

if (stringSet.Count != 4)
    throw Exception e; // Throw a real exception, not this

从这里我们需要知道我们的字符串应该是什么顺序并分配它们:

var A = stringSet[0];
var B = stringSet[1];
var C = stringSet[2];
var D = stringSet[3];

虽然这应该回答您提出的问题,但我建议您与stringSet进行不同的个人处理。