-1

所以我今天有一个名为“ nick _george_ james ”的字符串,它看起来像这样

string today = "_nick__george__james_";

如何将“_”之间的文本隔离为新字符串?我想把 3 个名字分成单独的字符串,这样最后我就有了 name1、name2、name3 的值 nick、george 和 james

我的应用程序是用 c# 编写的

4

4 回答 4

6

使用string.Split

string[] array = today.Split('_');

编辑您的问题后,我意识到_您的字符串中有多个。您应该尝试以下方法。

string[] array = today.Split("_".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

或者

string[] array = today.Split(new []{"_"}, StringSplitOptions.RemoveEmptyEntries);

稍后您array将包含:

array[0] = "nick";
array[1] = "george";
array[2] = "james";
于 2012-12-31T05:11:47.793 回答
0
string[] array = today.Split('_');
name1=array[0];
name2=array[1];
name3=array[2];
于 2012-12-31T05:14:49.693 回答
0
string[] nameArray = today.Split('_');

在这里,您将获得一组名称。您可以通过指定 nameArray 的索引位置来获取每个名称。

即现在nameArray包含的值如下

nameArray[0] = "nick", nameArray[1] = "george", nameArray[2] = "james"

于 2012-12-31T05:21:03.933 回答
0

想出一个除 string.Split 之外的想法。

string today = "_nick__george__james_";

//Change value nNoofwordstobeFound  accordingly

int nNoofwordstobeFound = 3;
int nstartindex = 0;
int nEndindex = 0;
int i=1;
while (i <= nNoofwordstobeFound)
{
    Skip:
    nstartindex = today.IndexOf("_",nEndindex);
    nEndindex = today.IndexOf("_", nstartindex + 1);

    string sName = today.Substring(nstartindex + 1, nEndindex - (nstartindex + 1));
    if (sName == "")
    {
        goto Skip;
    }
    else
    {
        //Do your code
        //For example                 
        string abc=  sName;    
    }

    i++;
}

我仍然更喜欢 string.split 方法而不是任何时候。

于 2012-12-31T07:38:13.213 回答