gpt4 book ai didi

java - 此示例中的 token 有何用途?

转载 作者:行者123 更新时间:2023-12-01 18:56:06 25 4
gpt4 key购买 nike

有人可以告诉我这段代码中的 token 的用途吗?我最近刚刚发现了 Java 中的 token ,并试图了解使用它们的原因。我以为 token 是用作断点的,但这里看起来几乎是用来限制的

private String printResult()
{
StringBuilder result = new StringBuilder();
String swimType=null;
String length=null;
String width=null;
String depth=null;
String volume=null;
String radius=null;
String pnlName = null;
try {
File resultFile = new File("Report.txt");
Scanner resultScanner = new Scanner(resultFile);

while(resultScanner.hasNext())
{
StringTokenizer strToken = new StringTokenizer(resultScanner.nextLine(), ":");
if(strToken.hasMoreTokens())
{
pnlName = strToken.nextToken();
swimType = strToken.nextToken();

if("Box".equalsIgnoreCase(swimType))
{
length = strToken.nextToken();
width = strToken.nextToken();
depth = strToken.nextToken();
volume = strToken.nextToken();
result.append(createResultStr(swimType, length, width, depth, volume));
}
else
{
radius = strToken.nextToken();
depth = strToken.nextToken();
volume = strToken.nextToken();
result.append(createResultStr(swimType, radius, depth, volume));
}

}
}

最佳答案

标记化是根据字符拆分字符串的过程。您可能想用逗号分隔。您将字符串传递给标记生成器,并给出“,”作为分隔符。然后,当您从分词器中读取每个项目时,它们会根据分隔符分开。我见过的一种常见方法是阅读直播。分词器按换行分割流,然后使用另一个分词器按逗号或制表符分割每一行。

文本的处理通常包括解析格式化的文本输入字符串。 解析是将文本划分为一组离散的部分,或标记,在一定的情况下序列可以传达语义。 StringTokenizer类提供了第一个此解析过程中的步骤,通常称为词法分析器(词法分析器)或扫描器字符串标记器实现枚举界面。所以,给定一个输入字符串,您可以使用 StringTokenizer 枚举其中包含的各个标记。

要使用StringTokenizer,您指定一个输入字符串和一个包含分隔符的字符串。<我>分隔符是分隔标记的字符。分隔符字符串中的每个字符都被视为有效的分隔符,例如 ",;:"将分隔符设置为逗号、分号和冒号。默认的分隔符集包括空白字符:空格、制表符、换行符和回车符。

StringTokenizer显示了构造函数这里:

StringTokenizer(String str) 
StringTokenizer(String str, String delimiters)
StringTokenizer(String str, String delimiters, boolean delimAsToken)

在所有版本中,str是一个字符串被标记化。在第一个版本中,使用默认分隔符。在第二个和第三个版本中,分隔符是一个字符串指定分隔符。在第三个版本中,如果 delimAsToken正确,那么在解析字符串时,分隔符也会作为标记返回。否则,不返回分隔符。

前两种形式不会将分隔符作为标记返回。创建 StringTokenizer 后对象,nextToken()方法用于提取连续的标记。 hasMoreTokens() 方法返回true同时还有更多的 token 需要提取。由于StringTokenizer实现枚举,这hasMoreElements( ) nextElement()方法也实现了,它们的行为与 hasMoreTokens() nextToken(),分别。

这是一个创建 StringTokenizer 的示例解析“键=值”对。连续的“key=value”对组由一个分号。

// Demonstrate StringTokenizer.
import java.util.StringTokenizer;

class STDemo {
static String in = "title=Java-Samples;" +
"author=Emiley J;" +
"publisher=java-samples.com;" +
"copyright=2007;";

public static void main(String args[]) {
StringTokenizer st = new StringTokenizer(in, "=;");
while (st.hasMoreTokens()) {
String key = st.nextToken();
String val = st.nextToken();
System.out.println(key + "\t" + val);
}
}
}

该程序的输出如下所示:

title Java-samples 
author Emiley J
publisher java-samples.com
copyright 2007


注意
如果 delimiter 为 null,则此构造函数不会抛出异常。但是,尝试在生成的 StringTokenizer 上调用其他方法可能会导致 NullPointerException

关于java - 此示例中的 token 有何用途?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13886881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com