我想从字符串拆分字符串,整数和双精度。 该字符串输入到一个文本框中,可以包含全部三个字符串。 (例如:你好13 94 3,2 6.4再见) 我想拆分它们并且总结它们。然后我想让他们看到一个标签。使用IndexOf()分割字符串,双打和字符串使用IndexOf()
所以标签应该说: 字符串:你好再见 诠释:107 双:9,6
谁能帮我进行?我不允许使用分割功能。
我想从字符串拆分字符串,整数和双精度。 该字符串输入到一个文本框中,可以包含全部三个字符串。 (例如:你好13 94 3,2 6.4再见) 我想拆分它们并且总结它们。然后我想让他们看到一个标签。使用IndexOf()分割字符串,双打和字符串使用IndexOf()
所以标签应该说: 字符串:你好再见 诠释:107 双: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类的文档中查看the grammar关于数字语法的信息。
注意,标记必须用空格隔开(通过\p{javaWhitespace}
定义)。可以定义不同的分隔符,但它需要明确定义您的情况下分隔符的含义。
它同时允许,
和.
作为小数点分隔符实际上没有多大意义。 345,234
就是这样一个例子,不清楚这个数字应该是十万还是几百。用户应该使用其系统所在的Locale
中的相应小数分隔符和千位分隔符。
它看起来像使用逗号和句点作为小数点。 – maba
尝试一下。迭代字符串的字符并在每次到达空间时结束当前字词。然后检查当前单词是双精度型,整型还是字符串。 –
遍历字符并使用正则表达式来标识整数?[0-9] *,double?[0-9] * \。?[0-9] *和string?[a-zA-Z \ s] – Jack