当前位置: 首页 > 知识库问答 >
问题:

如何直接读取以制表符分隔的源文件中具有最大制表符分隔符的行

鲁彬炳
2023-03-14

目前,我正在逐行读取由制表符分隔的文件,将每行中的项目拆分,并通过硬编码值50查找由50个项目组成的制表符分隔的行,然后创建数据表。

问题:以制表符分隔的源文件在拆分后有时有50或53项以制表符分隔的行。需要直接读取以制表符分隔的源文件中具有最大制表符分隔符的行,然后继续我的逻辑。

我的C代码

using (var sr = new StreamReader(sourceFileFullName))
{
  string line = null;
  while ((line = sr.ReadLine()) != null)
  {
    var items = line.Split(new[] { '\t', '\n' }).ToArray();

    if (items.Length != 50)
    continue;
  //Rest of my code to create datatable for the items after splitting in tab delimitedline
  }
}

共有1个答案

翁心思
2023-03-14

您可以使用以下代码段

string content = "";
using (var reader = new StreamReader("C:\\temp\\abc.txt"))
{
    content = reader.ReadToEnd();
}
if (!string.IsNullOrEmpty(content))
{
    var value = content.Split('\n').OrderByDescending(y => y.Split('\t').Count()).Take(1);
}
 类似资料:
  • 问题内容: 我有以下格式的数据: 现在,我尝试根据最后一个字段对文件进行递减排序。我尝试了以下命令,但是没有按照我们的预期排序。 什么是正确的方法? 这是样本数据。 问题答案: 使用 bash ,可以达到目的: 注意单引号字符串前面的美元符号。您可以在 bash 手册页 的ANSI- C报价部分中 阅读有关它的内容。

  • 我在使用Pandas读取选项卡分隔的文件时遇到问题。 所有单元格值都有双引号,但对于某些行,有一个额外的双引号打断了整个过程。例如: 我得到的错误是:错误标记数据。C错误:第8355行预期有31个字段,SAW58 我使用的代码是: 它适用于其余文件,但不适用于出现额外双引号的文件。

  • 我试图实现的是从Excel工作表(保存在Txt中,制表符分隔)中逐行读取数据,并且每个单独的列都是我想要存储在数组中的不同数据。 我尝试了不同的方法..我甚至从网上下载了CSVReader class,但它不能用。至少这次它读的是真实的人物,而不是讽刺。 我现在的版本是使用bufferedReader和String Tokenizer。但它没有正确阅读。 下面是代码: for(int i =0;

  • 问题内容: 我正在用Java编写CSV导出器,该导出器应遵守用户的自定义设置,尤其是用作分隔符的“列表分隔符”。 在Windows中,可以在 我不了解其他操作系统,但是我很确定您也可以在其他操作系统上进行更改。 将自定义设置从操作系统转换为Java的最佳方法是什么?我在Eclipse RCP环境中,因此,如果有可用的东西,我可能会使用与RCP相关的解决方案。 问题答案: 从这个答案的评论: 我 必

  • 问题内容: 我正在做一个自学练习,以帮助我更多地了解Java,但是我一直陷在这个问题上。我有以下txt文件: 注意: 名称和爱好由制表符分隔 读取所有行并将其放入arraylist(name,hobby)的最佳方法是什么。棘手的部分是 有空格,必须将其放在一个数组下,显然我无法对其进行硬编码。这是我当前的代码: 我收到一个错误: java.lang.StringIndexOutOfBoundsEx

  • 问题内容: 我正在尝试读取以下形式的大文本文件: 我想在文本文件中将此字符串作为一个大的Java字符串读取。这可能吗?我知道使用split方法。 它可以逐行读取它,但我真正需要的是在“ +”号处分割此长文本字符串。之后,我想将其存储为数组,arraylist,列表,… 谁能帮我这个?因为互联网上的所有信息都只是逐行读取文件。提前致谢! 问题答案: 您可以使用或任何IO类读取文件。假设文件中包含该字