我目前正在从事一个项目,在该项目中我在文本文档中流式传输并对其进行标记。唯一的问题是文本文档中的类型是未知的,在我将它设置为程序中的变量之前,有什么方法可以检查它是什么变量类型?
问问题
495 次
1 回答
2
不,因为类型信息不包含在文本流中。例如,假设标记器遇到以下标记:
47
这是什么类型的?它可以是 String ( "47"
)、字节、int、long、float 或 double。所有这些类型都可能产生该标记,因此在打印之前无法判断该类型是什么。
解析文件时,您应该已经知道预期的类型,如果不匹配则给出错误。
StringTokenizer类只给你返回字符串。如果您期望字符串,则可以将它们保存到变量中。如果您期待另一种类型,则必须对其进行解析。例如,如果您读取 string "47"
,那么您应该通过Integer.parseInt运行它。这将返回一个 int(例如,47
),或者如果它不匹配,则抛出一个 NumberFormatException。您可能想要捕获 NumberFormatException 并给用户一个错误,因为文本文件与您期望的不匹配。
于 2011-03-29T02:45:13.640 回答