Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用IndexOf()从字符串中拆分字符串、double和int_Java_String_Split_Indexof - Fatal编程技术网

Java 使用IndexOf()从字符串中拆分字符串、double和int

Java 使用IndexOf()从字符串中拆分字符串、double和int,java,string,split,indexof,Java,String,Split,Indexof,我想从字符串中拆分字符串、整数和双精度。 字符串在文本框中输入,可以包含所有三个字符串。(例如:你好13 94 3,2 6.4再见) 我想把它们分开,然后加起来。然后我想把它们展示给一个标签 因此,标签上应注明: 字符串:你好,再见 国际电话:107 双人:9,6 有人能帮我开车吗?我不允许使用拆分功能。好吧,如果没有拆分,你只需一个字符一个字符地查看你正在阅读的内容。如果它有字母,它的字符串,如果是点或逗号,它的双精度。并在每次找到空间时重置此检测。这几乎就是你所需要的 关于如果您只允许根据当

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

因此,标签上应注明: 字符串:你好,再见 国际电话:107 双人:9,6


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

好吧,如果没有拆分,你只需一个字符一个字符地查看你正在阅读的内容。如果它有字母,它的字符串,如果是点或逗号,它的双精度。并在每次找到空间时重置此检测。这几乎就是你所需要的


关于

如果您只允许根据当前语言环境指定小数点,则可以使用
扫描仪
优雅地解决此问题:

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}
所定义)。可以定义不同的分隔符,但在您的案例中,需要清楚地定义什么是分隔符


实际上,同时允许
作为十进制分隔符没有多大意义
345234
就是这样一个例子,它不清楚数字应该是十万还是几百。用户应在其系统打开的
区域设置中使用适当的小数点分隔符和千位分隔符。

看起来您同时使用逗号和句点作为小数点。请尝试。遍历字符串的字符,每次到达空格时结束当前单词。然后检查当前单词是double、int还是string。遍历字符并使用正则表达式来标识integer?[0-9]*、double?[0-9]*\.?[0-9]*和string?[a-zA-Z\s]谢谢提示,我现在可以开始了!在一些国家,如德国,他们用逗号代替小数点。因此可能有必要。@Jack:我同意这种需要,但我不同意允许同时使用具有相同含义(小数点)的