使用IndexOf()从字符串中拆分字符串,双精度和整数

时间:2013-05-17 08:16:24

标签: java string split indexof

我想从字符串中分割字符串,整数和双精度数。 该字符串在文本框中输入,可以包含所有三个。 (例如:你好13 94 3,2 6.4再见) 我想分开它们并总结它们。然后我想把它们展示给标签。

所以标签应该说: 字符串:你好再见 Int:107 双倍:9,6

有人能让我开始吗?我不允许使用拆分功能。

2 个答案:

答案 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中使用适当的小数点分隔符和千位分隔符。