我想从字符串中拆分字符串、整数和双精度数。该字符串在文本框中输入,可以包含所有三个。(例如:Hello 13 94 3,2 6.4 bye)我想将它们拆分并总结。然后我想把它们展示给一个标签。
所以标签应该说: String: Hello bye Int: 107 Double: 9,6
任何人都可以让我开始吗?我不允许使用拆分功能。
好吧,如果没有拆分,您就可以逐个搜索并检测您正在阅读的内容。如果它有字母,它的字符串,如果是点或逗号,它的双精度。并在每次找到空间时重置此检测。这几乎就是你所需要的。
问候
如果您只允许根据当前语言环境指定小数点的方式,那么可以使用Scanner
优雅地解决这个问题:
Scanner sc = new Scanner(inputString);
while (sc.hasNext()) {
if (sc.hasNextInt()) {
// It is an integer
sc.nextInt();
} else if (sc.hasNextDouble()) {
// It is a double
sc.nextDouble();
} else {
// Neither, so treat it as string
sc.next();
}
}
实际上,Scanner
类在构成double
. 查看Scanner 类文档中有关数字语法的语法。
请注意,标记必须用空格分隔(由 定义\p{javaWhitespace}
)。可以定义不同的分隔符,但需要明确定义在您的情况下构成分隔符的内容。
,
同时允许和.
作为小数分隔符实际上没有多大意义。345,234
就是这样一个例子,不清楚这个数字应该是几十万还是几百。Locale
用户应该在他们的系统上使用适当的小数分隔符和千位分隔符。