C#检查拆分字符串的一个计数,如果正确,则打印另一个计数
因此,我目前正在开发一个程序,它将一个大的C#检查拆分字符串的一个计数,如果正确,则打印另一个计数,c#,C#,因此,我目前正在开发一个程序,它将一个大的txt文件作为字符串逐行读取。对于文件的特定部分,格式如下: text1:text2:text3:text4:text5:text6 我知道如何分割字符串并找到不同的计数 我要做的是检查text5中的文本是否以某个表达式排序开始,然后为该行打印text3 foreach (string str in File.ReadLines(@"/filelocation")) { if (str.StartsWith("fusedef")) {
txt
文件作为字符串逐行读取。对于文件的特定部分,格式如下:
text1:text2:text3:text4:text5:text6
我知道如何分割字符串并找到不同的计数
我要做的是检查text5中的文本是否以某个表达式排序开始,然后为该行打印text3
foreach (string str in File.ReadLines(@"/filelocation"))
{
if (str.StartsWith("fusedef"))
{
string text3 = str.Split(':')[2];
string text5 = str.Split(':')[4];
if (text5.StartsWith("SORT_"))
{
Console.WriteLine(text3);
}
}
(据我所知,对分割字符串的计数从0开始,但如果我错了,请纠正我,这是几周前才开始的。谢谢!)您需要删除任何可能会混淆起始字符的字符。特别是字符串开始之前的空白 string.Split重载,允许您设置多个要拆分的字符,然后删除此拆分返回的空字符串
string[] blocks = str.Split(new char[] {':', ' '}, StringSplitOptions.RemoveEmptyEntries);
if (blocks[4].StartsWith("SORT_"))
{
Console.WriteLine(blocks[2]);
}
或者,您可以修剪块字符串
string[] blocks = str.Split(':');
if (blocks[4].Trim().StartsWith("SORT_"))
{
Console.WriteLine(blocks[2]);
}
拆分字符串将输出一个字符串数组。要真正使用C#并使事情变得多么简单,为什么不尝试使用列表对字符串进行操作 如果知道项目的显示顺序,您可以从列表中的任何位置调用字符串
foreach (string str in File.ReadLines(@"/filelocation")) {
if (str.StartsWith("fusedef")) {
List<string> list = str.Split(':').ToList();
if (list[5].StartsWith("SORT_"))
Console.WriteLine(list[3]);
}
}
foreach(File.ReadLines(@)/filelocation)中的字符串str){
如果(str.StartsWith(“fusedef”)){
List=str.Split(“:”).ToList();
if(列表[5].StartsWith(“排序”))
Console.WriteLine(列表[3]);
}
}
希望这有帮助
编辑:您可能希望从分隔符中删除前导空格和尾随空格。或者使用“:”而不是“:”分割字符串。如果字符串的格式为“text 1:text 2:text 3:text 4”,则分割的字符串都将以空格开头,因此您可能希望删除这些字符串。您也不需要多次调用split。您在哪里打印计数?确切的问题是什么?你被困在哪里?请清楚,并给出一些“fusedef”行的示例。请看。每个字符串中的文本不是字面意义上的text1、text2等,它是工作敏感的,所以我不能在这里发布。谢谢你的建议,不过我会记住它们,以备将来@Stuart。没有打印计数,只是想确保我正确计数@SkintkingleThanks一百万!这就解决了我的问题@Steve