gpt4 book ai didi

java - 流标记器、空格

转载 作者:行者123 更新时间:2023-12-01 23:36:44 27 4
gpt4 key购买 nike

我想使用 StreamTokenizer 从 java 文件中提取名称。我已将空格设置为逗号

        inputTokenizer.whitespaceChars(',', ',');

但是,当我解析输入文件中的名称(名字姓氏之间有一个空格)时,标记生成器将名字视为一个标记,将姓氏视为另一个标记。我希望将它们视为同一个 token ,我该怎么做?

例如“Billy Jean”被视为两个单独的 token (Billy - token1 Jean - token2),我希望它被视为一个。

谢谢

最佳答案

你的问题是(显然)空格默认被视为分隔符(不足为奇);您已将逗号设置为空白字符,因此逗号和空格都被视为空白字符。以下程序可以实现我认为您想要的功能;请注意将空格设置为“wordChars”的行。

import java.io.IOException;
import java.io.StreamTokenizer;
import java.io.StringReader;


public class TokenTeaser
{
public static void main(String[] args)
{
try
{
String testString = "one two, three, four five";
StringReader sr = new StringReader(testString);
StreamTokenizer st = new StreamTokenizer(sr);
st.whitespaceChars(',', ',');
st.wordChars(' ', ' ');
int currentToken = st.nextToken();
while (currentToken != StreamTokenizer.TT_EOF)
{
System.out.println(st.sval);
currentToken = st.nextToken();
}
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

关于java - 流标记器、空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18552854/

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