我有一个字符串:
string mystring="part1, part2, part3, part4, part5";
我怎样才能只返回前 3 个元素而不先拆分它们?像这样:
string newstring="part1, part2, part3";
我有一个字符串:
string mystring="part1, part2, part3, part4, part5";
我怎样才能只返回前 3 个元素而不先拆分它们?像这样:
string newstring="part1, part2, part3";
您可以使用以下方法获得前三个:
正则表达式 r = 新正则表达式(@"(\S+, \S+, \S+), \S+");
我确信有更好的方法来编写正则表达式,但我认为这可以用于基本输入。
尝试查找第 3 个逗号的索引,然后获取子字符串。
例子
void Main()
{
string mystring="part1, part2, part3, part4, part5";
int thirdCommaIndex = IndexOf(mystring, ',', 3);
var substring = mystring.Substring(0,thirdCommaIndex-1);
Console.WriteLine(substring);
}
int IndexOf(string s, char c, int n)
{
int index = 0;
int count = 0;
foreach(char ch in s)
{
index++;
if (ch == c)
count++;
if (count == n )
break;
}
if (count == 0) index = -1;
return index;
}
这将解析字符串,试图找到第三个逗号并将其以及之后的所有内容都扔掉。
string mystring = "part1, part2, part3, part4, part5";
UInt16 CommasFound = 0;
UInt16 Location = 0;
for (Location = 0; (CommasFound < 3) &&
(Location < mystring.Count()); Location++)
if (mystring[Location].Equals(','))
CommasFound++;
if (CommasFound == 3)
{
string newstring = mystring.Substring(0, Location-1);
}
else { // Handle the case where there isn't a third item
}