【问题标题】:How to tokenize if there is different length between words如果单词之间的长度不同,如何标记
【发布时间】:2014-05-28 00:38:11
【问题描述】:

所以,我读并写回它。文件中字符串之间的一些空格长度不同,我想知道如何检查单词之间的长度是否不同

我只能在这个项目中使用 substring 和 indexOf

public class Tokenize
{     


  public static void main(String[] args) throws IOException
{
  {
    final String DELIMITER = " ";
    final String DELIMITER_TAB = "  ";
    int index = 0;

    BufferedReader inputFile = new BufferedReader(new FileReader(INPUT_FILE));
    PrintWriter outputFile = new PrintWriter(new FileWriter(OUTPUT_FILE));
}
}

我希望所有内容都是单独的行,例如 Special

【问题讨论】:

  • 我还没有使用分隔符标签
  • 为什么要这样做?你的空白真的有语义吗?
  • 它是一个项目,我必须对文件中的文本进行排序
  • 你应该只使用 for(String token: lineOfText.split(DELIMITER+"+")) System.out.println(token);
  • 我可能会使用StringTokenizer

标签: java tokenize


【解决方案1】:

我会使用整数的二维列表,其中一维包含三个整数;每个三元组代表记号前的空白长度、记号的开头和记号的长度。我会使用 substring 一次遍历一个字符,计算空白字符或标记字符,并将它们累加到我的计数/索引中。完成后,您将获得一个令牌列表,并且可以轻松查看它们之间的空格。如果您的第一个标记以第一个字符开头,则只有第一个元素的空格计数可以为 0。

在这种情况下,我认为您不需要索引。你可以使用它,但我认为它会让你的代码更难阅读,而不是一次只通过一个字符的字符串。

【讨论】:

  • 你能概括一下它的样子吗
  • 你知道吗,你是什么意思的二维整数列表
  • 如果你把“java二维数组”放到google里,你得到的例子比你能用的多。
猜你喜欢
  • 2018-08-11
  • 1970-01-01
  • 2013-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-16
相关资源
最近更新 更多