【问题标题】:Using delimiter in nextToken() with multiple delimiter in Java在 nextToken() 中使用分隔符和 Java 中的多个分隔符
【发布时间】:2015-08-09 15:04:20
【问题描述】:

我正在尝试使用结构如下的字符串:

3882027944,Yes,"A specific website or app (please provide the answer)",
"Weather Underground, also local tv news half the time.",
"Somewhat likely","30 - 44", Male, "$10,000 to $24,999",
"West North Central"

(为清楚起见,换行,原文中没有)

我一直在尝试使用 Java 中的 nextToken() 函数来做到这一点。我正在尝试按逗号之间的每个部分拆分字符串。但是,如果字符串包含逗号(例如 Weather Underground, also local...),则不应在此处拆分。

所以我的问题是:有没有办法拆分令牌组合,以便我可以拆分 "," 而不是每个单独的 ,

【问题讨论】:

  • 这是您的解决方案:stackoverflow.com/questions/7800494/…
  • 对了,你的意思是你用StringTokenizer
  • hmm.. 谢谢... 但我不认为这是我一直在寻找的解决方案,我实际上是在尝试使用标记器来读取整体的点点滴滴字符串,因为有 100~1000 行类似的数据字符串,并且使用模式匹配我认为它不会像我想要的那样工作..
  • 我认为 nextToken(delimiter) 也有效?如果我期望每个标记有不同的分隔符...

标签: java


【解决方案1】:

您可能希望使用 split 而不是分词器

来自http://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html

StringTokenizer 是一个 legacy 类,保留用于 兼容性原因,尽管在新代码中不鼓励使用。 建议任何寻求此功能的人使用拆分 String 或 java.util.regex 包的方法。

public static void main(String[] args) {
        String delims = "\",\"";
        String splitString = "one\",\"two,\",\"three\",\"four\",\",five";

        String[] tokens = splitString.split(delims);
        int tokenCount = tokens.length;
        for (int j = 0; j < tokenCount; j++) {
            System.out.println("Split Output: "+ tokens[j]);
        }
    }

【讨论】:

  • 是的,我想这将是一个更好的解决方案,我只是认为可能有办法使用标记器。谢谢。
猜你喜欢
  • 2012-10-24
  • 2013-11-26
  • 2017-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-05
相关资源
最近更新 更多