【问题标题】:java string tokenizerjava字符串分词器
【发布时间】:2026-02-17 01:15:02
【问题描述】:

如果我有一个文件,我正在使用字符串标记器来获取逗号之间的值。它是一个csv文件。这是示例输入:

test,first,second,,fourth,fifth

那么我怎样才能抓住那个空逗号?现在它只是假装什么都没有。它甚至没有看到有一个地方什么都没有。

【问题讨论】:

  • 你能发布分词器代码吗?
  • 第一:这是作业还是真实场景?这对问题的回答方式有很大的影响
  • CSV 解析比最初看起来要复杂得多。使用 CSV 解析库,网上有很多可供选择。
  • 它的真实生活。我需要一种快速而肮脏的方式来解析 csv 文件。我不需要一个重量级的解决方案,所以我首先想到的是一个分词器,但拆分效果更好,而且开销可能更少。

标签: java csv


【解决方案1】:

建议使用 String#split() 而不是 StringTokenizer。

String[] s = "test,first,second,,fourth,fifth".split(",");
System.out.println(Arrays.asList(s));
System.out.println(s.length);

// output:
// [test, first, second, , fourth, fifth]
// 6

此外,如果您在代码中涉及更多 CSV 解析,请尽可能尝试使用现有库,例如 JavaCSV

【讨论】:

    【解决方案2】:

    我不确定我是否正确理解了您的问题。我会使用像opencsv 这样的知名包。

    【讨论】:

      【解决方案3】:

      拆分技术效果很好,只要您的元素中没有逗号。您可以使用现有的库。使用正则表达式进行 CSV 处理也取得了不错的效果。

      【讨论】: