所以,我知道我的标题有点令人困惑,我会解释。
我的代码如下所示:
string filename = "C:\\C#\\maplist.txt"; // please put the text file path.
string filename2 = "C:\\C#\\zemaplist.txt";
string map;
StreamReader sr = new StreamReader(filename);
StreamWriter sw = new StreamWriter(filename2);
List<string> maps = new List<string> { };
while ((map = sr.ReadLine()) != null)
{
maps.Add(map);
}
sr.Close();
for (int i = 0; i < maps.Count; i++)
{
Console.WriteLine(maps[i]);
sw.WriteLine(maps[i]);
}
sw.Close();
我需要做的是当代码读取新行时,在我的行中有
“喂,喂”
我想将,
彼此分开,以便我可以将它们作为其他参数,以便第一个Hey
将添加到maps
而另一个hey
1}}将是maps2
,
我该怎么做?
答案 0 :(得分:2)
您可以使用Split()
函数根据分隔符拆分给定的字符串。
试试这个:
while ((map = sr.ReadLine()) != null)
{
maps.Add(map.Split(',')[0].Trim());
maps2.Add(map.Split(',')[1].Trim());
}
简单代码:
using System.IO;
string filename = "C:\\C#\\maplist.txt"; // please put the text file path.
string filename2 = "C:\\C#\\zemaplist.txt";
string map;
StreamWriter sw = new StreamWriter(filename2);
List<string> maps = new List<string> { };
List<string> maps2 = new List<string> { };
String [] allLines = File.ReadAllLines(filename);
foreach(String line in allLines)
{
maps.Add(line.Split(',')[0].Trim());
maps2.Add(line.Split(',')[1].Trim());
}
for (int i = 0; i < maps.Count; i++)
{
Console.WriteLine(maps[i]);
sw.WriteLine(maps[i]);
}
sw.Close();
解决方案2:
String mapItem1="";
String mapItem2="";
if(maps.Count == maps2.Count)
{
for(int i=0;i<maps.Count;i++)
{
mapItem1=maps[i];
mapItem2=maps2[i];
}
}
答案 1 :(得分:2)
while ((map = sr.ReadLine()) != null)
{
string[] split = map.Split(',');
//First Hey would be split[0], second Hey would be split[1]
maps.Add(split[0].Trim());
maps2.Add(split[1].Trim());
}
Split
方法可以帮助您解决这个问题。
如果要修剪前导空白字符,可以在字符串上使用.Trim()方法。
答案 2 :(得分:1)
使用Split()
。
string heys = "Hey,Hey";
string[] splitArray = heys.Split(',');
然后你有:
splitArray[0] = "Hey";
splitArray[1] = "Hey";
答案 3 :(得分:-1)
为什么甚至不费力地逐行阅读?读取整个文件,将新行替换为“,”(以防止来自不同行的最后和第一个元素被视为一个),并循环一个干净的字符串。
string fileContent = Regex.Replace(File.ReadAllText("test.txt"), @"\r", ",");
List<string> mapList = new List<string>();
foreach (string map in Regex.Split(fileContent.Replace(@"\s+", ""), ","))
{
mapList.Add(map.Trim());
}