我想从字符串中分割字符串,整数和双精度数。 该字符串在文本框中输入,可以包含所有三个。 (例如:你好13 94 3,2 6.4再见) 我想分开它们并总结它们。然后我想把它们展示给标签。
所以标签应该说: 字符串:你好再见 Int:107 双倍:9,6
有人能让我开始吗?我不允许使用拆分功能。
答案 0 :(得分:1)
好吧,如果没有拆分,你可以抢劫并通过char检测你正在阅读的内容。如果它有字母,它的字符串,如果点或逗号它的双。每次找到空格时重置此检测。这就是你应该需要的全部内容。
此致
答案 1 :(得分:0)
如果您只允许根据当前区域设置指定小数点,则可以使用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类文档中有关数字语法的the grammar。
请注意,标记必须用空格分隔(由\p{javaWhitespace}
定义)。可以定义不同的分隔符,但它需要明确定义构成分隔符的内容。
同时允许,
和.
作为小数分隔符实际上没有多大意义。 345,234
就是这样一个例子,不清楚这个数字应该是数十万还是数百。用户应在其系统所在的Locale
中使用适当的小数点分隔符和千位分隔符。