将字符串拆分为几个没有string.split的子字符串

时间:2018-09-11 05:57:25

标签: c# substring

首先,这是我的代码:

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = "test1,test2,test3";
        }
    }
}

因此,我想使用子字符串拆分test1 test2和test3并通过console.writeline()在控制台中将其分发。我要使用“,”。我不允许使用string.split。你能帮我吗?

3 个答案:

答案 0 :(得分:2)

这可以工作!

 class Program  
    {  
        static void Main(string[] args)  
        {  

            string str = "Test,Data";  
            ArrayList arrayList = new ArrayList();  
            string Temp = "";  
            for (int i = 0; i < str.Length; i++)  
            {  

                if (str[i] != ',')  
                {  
                    Temp = Temp + str[i];  
                    continue;  
                }  


                arrayList.Add(Temp);  
                Temp = "";  
            }  
            Console.WriteLine("Enter the no 1 to " + arrayList.Count);  
            int option =Convert.ToInt32(Console.ReadLine());  
            if (option < arrayList.Count && option > 0)  
            {  
                Console.WriteLine(option+ " position is  = " +arrayList[option - 1]);  
            }  
            else  
            {  
                Console.WriteLine("Enter only 1 to " + arrayList.Count);  
            }  
            Console.ReadLine();  
        }  
    }  

答案 1 :(得分:2)

这里使用.IndexOf().Substring()方法为您提供simple solution

string strInput = "test1,test2,test3,";
while (strInput.Length > 0)
{
    int commaIndex = strInput.IndexOf(',');
    if (commaIndex != -1)
    {
        Console.WriteLine(strInput.Substring(0, commaIndex));
        strInput = strInput.Substring(commaIndex + 1);
    }
    else
    {
        Console.WriteLine(strInput);
        strInput = "";
    }
}

在哪里

  

String.IndexOf Method报告第一个从零开始的索引   在其中出现指定的Unicode字符或字符串   实例。如果字符或字符串不是,则该方法返回-1   在这种情况下找到。 String.Substring Method将帮助您从给定实例中检索子字符串。

答案 2 :(得分:1)

有关非正则表达式的答案:

string str = "test1,test2,test3";
string currentSubStr = string.Empty;
foreach (char c in str)
{
    if (c == ',')
    {
        Console.WriteLine(currentSubStr);
        currentSubStr = string.Empty;
    }
    else
    {
        currentSubStr = currentSubStr + c;
    }
}

这适用于非常简单的逗号分隔列表,但是如果您要处理的是csv文件,则最好使用适当的csv解析器。