Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java stringtokenizer和未知变量类型_Java_Stringtokenizer - Fatal编程技术网

Java stringtokenizer和未知变量类型

Java stringtokenizer和未知变量类型,java,stringtokenizer,Java,Stringtokenizer,我目前正在从事一个项目,在该项目中,我将文本文档流化并标记它。唯一的问题是文本文档中的类型未知,在我将其设置为程序中的变量之前,有没有办法检查它是什么类型的变量?没有,因为类型信息不包含在文本流中。例如,假设tokeniser遇到以下令牌: 47 这是什么型号的?它可以是字符串(“47”)、字节、int、long、float或double。所有这些类型都可能产生该标记,因此无法在打印之前判断该类型是什么 在解析文件时,您应该已经知道应该使用什么类型,如果不匹配,则给出错误 该类只返回字符串。如

我目前正在从事一个项目,在该项目中,我将文本文档流化并标记它。唯一的问题是文本文档中的类型未知,在我将其设置为程序中的变量之前,有没有办法检查它是什么类型的变量?

没有,因为类型信息不包含在文本流中。例如,假设tokeniser遇到以下令牌:

47
这是什么型号的?它可以是字符串(
“47”
)、字节、int、long、float或double。所有这些类型都可能产生该标记,因此无法在打印之前判断该类型是什么

在解析文件时,您应该已经知道应该使用什么类型,如果不匹配,则给出错误


该类只返回字符串。如果需要字符串,可以将其保存到变量中。如果需要其他类型,则必须对其进行分析。例如,如果您读取字符串
“47”
,则应该从头到尾运行它。这将返回一个int(例如,
47
),如果不匹配,则抛出NumberFormatException。您可能希望捕获NumberFormatException并给用户一个错误,因为文本文件与您期望的不匹配。

这是家庭作业吗?到目前为止您尝试了什么?当您说“文本文档中的类型未知”时,您的意思是您不知道文本流是UTF-8还是ASCII或UTF-16?或者你的意思是文本也包含数字,你想将数字保存为数字,将文本(非数字)字符串保存为纯文本?不,这不是家庭作业,是的,它包含一行字符串和数字,我想让代码找出它是什么,然后将其应用于正确的变量类型。谢谢,这很有意义,但我认为有某种方法可以告诉你下一个标记是什么,因为我只看到了hasMoreTokens();不。StringTokenizer只处理将字符串拆分为单词。正如您从我的回答中看到的,它与将它们转换为有意义的值无关(我必须使用Integer.parseInt来实现这一点)
hasMoreTokens
只会告诉您字符串末尾之前是否还有更多单词。