5

この質問が無限に繰り返されることはわかっていますが、ちょっと行き詰まっています。私は次のような文字列を持っています

"Doc1;Doc2;Doc3;12"

それは次のようなものになる可能性があります

"Doc1;Doc2;Doc3;Doc4;Doc5;56"

セミコロンで区切られたいくつかの文字列の後に数値または ID が続くようなものです。

番号/ID と文字列を別々に抽出する必要があります。正確には、2 つの文字列を使用できます。1 つは"Doc1;Doc2;Doc3"or"Doc1;Doc2;Doc3;Doc4"を持ち、もう 1 つは "12"、"34"、または "45" などの数字/ID だけを持ちます。ええ、私は C# 3.5 を使用しています。

とても簡単で機知に富んだ質問だとは思いますが、この男は立ち往生しています。専門家の支援が必要です。

よろしくアヌラグ

4

7 に答える 7

4

一方通行:

string[] tokens = str.Split(';');
var docs = tokens.Where(s => s.StartsWith("Doc", StringComparison.OrdinalIgnoreCase));
var numbers = tokens.Where(s => s.All(Char.IsDigit));
于 2013-07-18T12:11:23.767 に答える
3
String docs = s.Substring(0, s.LastIndexOf(';'));
String number = s.Substring(s.LastIndexOf(';') + 1);
于 2013-07-18T12:18:19.767 に答える
1
string actual = "Doc1;Doc2;Doc3;12";
int lstindex = actual.LastIndexOf(';');
string strvalue = actual.Substring(0, lstindex);
string id = actual.Substring(lstindex + 1);
于 2013-07-18T12:15:27.857 に答える