C# C语言中的字符串处理#
我为一个文本文件开发了控制台应用程序C#,其中包含一些字符和许多行 °第四章[A1城2]/(N)阿城(黑龙江省城市)/ °n¨a¨196¨a¨203¨1[A1-duo1-ni2-si1]/Adonis/ 阿尔巴尼亚/ 阿尔巴尼亚语(人)/ °β∗·[a1 er3 fa4]/α/ °、¼°ú[A1 er3 ji2 er3]/Al 我希望将[]和之间的字符写入另一个具有新行的文本文件。我不知道如何用C语言实现。 我到现在为止所尝试的都不起作用。 '''C# C语言中的字符串处理#,c#,parsing,C#,Parsing,我为一个文本文件开发了控制台应用程序C#,其中包含一些字符和许多行 °第四章[A1城2]/(N)阿城(黑龙江省城市)/ °n¨a¨196¨a¨203¨1[A1-duo1-ni2-si1]/Adonis/ 阿尔巴尼亚/ 阿尔巴尼亚语(人)/ °β∗·[a1 er3 fa4]/α/ °、¼°ú[A1 er3 ji2 er3]/Al 我希望将[]和之间的字符写入另一个具有新行的文本文件。我不知道如何用C语言实现。 我到现在为止所尝试的都不起作用。 ''' 您需要使用一些C#string方法和文件流类
您需要使用一些C#string方法和文件流类
- 子字符串以分隔具有[]的字符串
- IndexOf是获取[或]字符的索引
- FileStream将数据写入文件
到目前为止,您尝试了什么?是的,感谢它的工作,刚刚添加到stringToFile。\n输出是正确的,这确实是需要的。:)
static void Main(string[] args)
{
string textFile = "input.txt";
string[] lines = File.ReadAllLines(textFile);
foreach (string line in lines)
{
String[] spearator = { "[ ","]", "/" };
Int32 count = 3;
String[] strlist =line.Split(spearator, count,
StringSplitOptions.RemoveEmptyEntries);
foreach (String s in strlist)
{
Console.WriteLine(s);
}
}
string[] stringArray = { "°¢³Ç [A1 cheng2] /(N) Acheng (city in Heilongjiang)",
" °¢¶àÄá˹ [A1 duo1 ni2 si1] /Adonis/",
"°¢¶û°ÍÄáÑÇ[A1 er3 ba1 ni2 ya4] /Albania/",
"°¢¶û°ÍÄáÑÇÈË[A1 er3 ba1 ni2 ya4 ren2] /Albanian(person)/",
"°¢¶û·¨ [a1 er3 fa4] /alpha/",
"°¢¶û¼°¶û[A1 er3 ji2 er3] /Al"
};
using (var fileStream = new FileStream("stringToFile.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
foreach (var dataItem in stringArray)
{
var firstIndex = dataItem.IndexOf("[");
var stringFirst = dataItem.Substring(firstIndex + 1);
var lastIndex = stringFirst.IndexOf("]");
var stringToFile = stringFirst.Substring(0, lastIndex);
byte[] bytes = Encoding.UTF8.GetBytes(stringToFile);
fileStream.Write(bytes, 0, bytes.Length);
}
fileStream.Close();
}