-1

我有一个类似这样1234ABCD-1A-AB的字符串,我在 string[] 分隔符中有分隔符,我正在循环直到字符串的长度。我想得到substring. 在循环内我正在写下面的代码

string tempVar = test.Substring(0, test.IndexOf("'" + separator+ "'"));

我也试过这样

string tempVar = String.Join(",", test.Split(',').Select(s => s.Substring(0, s.IndexOf("'" + separator+ "'"))));

通过使用这个我得到错误索引不应该小于 0,循环将只运行 2 次,因为我是基于分隔符的循环,并且我的字符串中有 2 个分隔符。

让我解释:

我有一个分隔符循环,它只会执行 2 次,因为我将 2 个分隔符,一个是第 9 位,另一个是第 14 位,在该循环内我根据分隔符拆分字符串

string[] test1 = test.Split("'" + separator+ "'");

在我的下一步中,我正在为下一个过程传递一个字符串值,如下所示

string temp = test1[i].ToString();

有了这个,我只得到 2 个字符串,1234ABCD1A想在循环中也得到第三个值。所以我想到了使用子字符串而不是使用拆分。

输出应该是:

first time: 1234ABCD

second time: 1A

third time: AB

4

7 回答 7

2

使用拆分功能:

string s = "1234ABCD-1A-AB";
string[] parts = s.Split('-');

然后:

s[0] == "1234ABCD"
s[1] == "1A"
s[2] == "AB"

根据现在更新的要求,尝试以下操作:

string input = "1234ABCD-1A-AB";
char separator = '-';

string[] parts = input.Split(separator);

// if you do not need to know the item index:
foreach (string item in parts)
{
    // do something here with 'item'
}

// if you need to know the item index:
for (int i = 0; i < parts.Length; i++)
{
    // do something here with 'item[i]', where i is 
    // the index (so 1, 2, or 3 in your case).
}
于 2013-04-08T10:21:54.507 回答
2

您可以使用Split分隔符'-',然后访问返回的string[].

string[] parts = test.Split('-');
string firstPart  = parts[0];
string secondPart = parts.ElementAtOrDefault(1);
string thirdPart  = parts.ElementAtOrDefault(2);

演示

于 2013-04-08T10:25:29.087 回答
0
string[] items = str.Split(new char[] { '-' });
于 2013-04-08T10:22:59.390 回答
0

你可以使用String.Split方法

返回一个字符串数组,其中包含此实例中由指定字符串或 Unicode 字符数组的元素分隔的子字符串。

string s = "1234ABCD-1A-AB";
string[] items = s.Split('-');

for(int i = 0; i < items.Length; i++)
  Console.WriteLine("Item number {0} is: {1}", i, items[i]);

输出将是;

Item number 0 is: 1234ABCD
Item number 1 is: 1A
Item number 2 is: AB

这是一个DEMO.

于 2013-04-08T10:23:27.563 回答
0

通过String.Split()非常简单:

string t = "1234ABCD-1A-AB";
string[] tempVar = t.Split('-');

foreach(string s in tempVar)
{
     Console.WriteLine(s);
}
Console.Read();

印刷:

1234ABCD 1A AB

于 2013-04-08T10:25:30.583 回答
0

您可以使用String.Split()

string str = "1234ABCD-1A-AB";
string[] splitted = str.Split('-');
/* foreach (string item in splitted)
{
    Console.WriteLine(item);
}*/

您可以将其设置为:

 string firstPart = splitted.FirstOrDefault();
 string secondPart = splitted.ElementAtOrDefault(1);
 string thirdPart = splitted.ElementAtOrDefault(2);
于 2013-04-08T10:25:36.773 回答
0

我只是错过了索引

string tempVar = test.Substring(0, test.IndexOf(separator[0].ToString()));
于 2013-04-09T06:03:39.277 回答