【问题标题】:How to make "this, string format" into two tokens ("this" and "string format")如何将“this,string format”变成两个token(“this”和“string format”)
【发布时间】:2023-03-18 11:10:02
【问题描述】:

我正在读取一个文件,每一行如下

Derek Simons, Jason baker
Jack Smith, Rob Thomson

问题出在我的分词器上

StringTokenizer st = new StringTokenizer(line, ",");
    while(st.hasMoreTokens()){ 
       System.out.println(st.nextToken());
    }

输出是

Derek Simons
 Jason baker
Jack Smith
 Rob Thomson

我怎样才能摆脱多余的空白?这样输出将是

Derek Simons
Jason baker
Jack Smith
Rob Thomson

感谢任何帮助!

【问题讨论】:

  • 到目前为止,您尝试了哪些方法来解决这个问题?谷歌?字符串 javadoc 可能吗?

标签: java filereader stringtokenizer file-io


【解决方案1】:

我不知道您使用的是哪种编程语言,但在许多语言中都有一个叫做 Trim() 的东西。所以你做 s.Trim();,其中 s 是字符串。这将删除所有空白

【讨论】:

  • 是的尝试:System.out.println(st.nextToken().trim());
【解决方案2】:

如果输入始终采用您描述的形式,您可以避免手动修剪每个字符串:

String[] tokens = line.split(",\\s*")

现在tokens 将在第二个标记中包含每个名称,不带前导空格。

【讨论】:

    【解决方案3】:

    您是否考虑过使用.trim 方法?

    返回字符串的副本,带有 前导和尾随空格 省略。

    【讨论】:

      【解决方案4】:

      您可以使用 trim() 甚至只是将 StringTokenizer 的分隔符指定为“,”(逗号后跟一个空格),而不仅仅是“,”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多