首先,这是我的代码:
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
string str = "test1,test2,test3";
}
}
}
因此,我想使用子字符串拆分test1 test2和test3并通过console.writeline()
在控制台中将其分发。我要使用“,”。我不允许使用string.split
。你能帮我吗?
答案 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解析器。