从字符串中隔离字符

时间:2012-12-31 05:10:45

标签: c# .net string character

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

string today = "_nick__george__james_";

如何将'_'之间的文字隔离成新的字符串?我想将3个名字分成单独的字符串,以便最后我有name1,name2,name3,其值为nick,george和james

我的申请是用c#编写的

4 个答案:

答案 0 :(得分: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";

答案 1 :(得分:0)

string[] array = today.Split('_');
name1=array[0];
name2=array[1];
name3=array[2];

答案 2 :(得分:0)

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

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

即现在nameArray包含如下的值

nameArray [0] =“nick”,nameArray [1] =“george”,nameArray [2] =“james”

答案 3 :(得分: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方法。