【问题标题】:What exactly is a 'token' in terms of java?就 java 而言,“令牌”到底是什么?
【发布时间】:2018-09-27 23:26:14
【问题描述】:

所以我正在开发这个程序,它可以打开指定目录中的所有 .java 和 .txt 文件,并对这些文件进行一些分析。我的程序应该找到的一件事是每个 .txt 和 .java 文件中的“最常出现的令牌”。我对什么是令牌的理解有限。只在文件中找到最常见单词的程序会做同样的事情吗?或者我该如何指定我的方法来查找标记,而不仅仅是单词?

感谢任何关于什么是令牌的进一步解释。谢谢。

【问题讨论】:

  • 在这种情况下,我会说它只是一个唯一可识别的字符串。见en.wikipedia.org/wiki/Lexical_analysis#Token
  • 这是一个要求澄清这项任务的好机会。由于在这种情况下令牌的含义可能会有所不同。

标签: java file search token


【解决方案1】:

令牌是 Java 虚拟机能够识别的最小元素。它可以包括一个词、关键字、数字、特殊字符、运算符等。关于该主题的详细文章可以在这里找到:https://www.quora.com/What-are-tokens-in-java

【讨论】:

    【解决方案2】:

    问题在于(分配)没有很好地指定。标记的概念与解析字符串输入有关。比如,一个计算器函数可以接收一个字符串,使用一组分隔符(通常是空白字符)将其分解。令牌,如运算符和数字,是令牌。根据输入的类型,解析器不必使用空格作为分隔符。另一种选择可能是标点符号,或制表符分隔文本的制表符。标记是分隔符之间存在的任何内容。然后解析器函数处理标记。

    因此,对您的问题的简短回答是: - 可能是人类语言文本文件的单词和标点符号。 - 如果你只是解析代码,你必须做出决定。包括点运算符在内的对象、属性、方法和运算符是否都应该是标记,或者标记是否指代一个实体:(即:WordCounter.getTotals() 是一个标记还是三个?还是 5?这些是判断调用) .

    【讨论】:

    • 我明白了。感谢您的答复。作业的其他部分要求我找到“空间划定的标记”。这是否意味着空格是单独的标记。就像在那种情况下一样,假设两边都有空格,WordCounter.getTotals() 是否会被视为一个以空格分隔的标记?
    • 是的。这就是我对“空格标记”的解释
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-11
    • 2011-08-04
    • 1970-01-01
    • 2023-04-08
    • 2020-08-05
    • 2019-04-01
    • 2015-01-21
    相关资源
    最近更新 更多