Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.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 数组有问题,可能会被拆分_Java_Arrays_Split - Fatal编程技术网

Java 数组有问题,可能会被拆分

Java 数组有问题,可能会被拆分,java,arrays,split,Java,Arrays,Split,如果看起来不好,我很抱歉。在我的手机上重写。我一直在获取ArrayIndexOutOfBoundsException:0,位于System.out.println。我已经看过了,想不出来。谢谢您的帮助。split将regexp作为参数,而不是文字字符串。你必须避开这个点: String realstring = "&&&.&&&&"; Double value = 555.55555; String[] arraystring = real

如果看起来不好,我很抱歉。在我的手机上重写。我一直在获取ArrayIndexOutOfBoundsException:0,位于System.out.println。我已经看过了,想不出来。谢谢您的帮助。

split将regexp作为参数,而不是文字字符串。你必须避开这个点:

String realstring = "&&&.&&&&";
Double value = 555.55555;
String[] arraystring = realstring.split(".");
String stringvalue = String.valueof(value);
String [] valuearrayed = stringvalue.split(".");
System.out.println(arraystring[0]);

或者您也可以简单地使用indexOf'.'和substring来获取字符串的两部分

如果目标是得到double的整数部分,您也可以简单地使用

string.split(Pattern.quote("."));

圆点。是一个特殊的角色,所以你需要逃避它

long truncated = (long) doubleValue;
这将打印的预期结果

&&&

测试给定字符串是否包含此字符也很方便。您可以通过执行以下操作来完成此操作:

String realstring = "&&&.&&&&";         
String[] partsOfString = realstring.split("\\.");
String part1 = partsOfString[0];
String part2 = partsOfString[1];
System.out.println(part1);
split使用正则表达式作为参数,并在正则表达式中使用。表示除行分隔符以外的任何字符,因此可以预期a.bc.split。将创建像[,,,]这样的空字符串数组。它没有发生的唯一原因是因为来自分裂

该方法的工作原理类似于使用给定表达式和零限制参数调用双参数split方法。因此,结果数组中不包括尾随的空字符串

因为所有字符串都是空的,所以得到的数组是空的,这是因为看到ArrayIndexOutOfBoundsException

要关闭删除机制,您必须使用splitregex,将版本限制为负限制


分道扬镳。你需要用\来转义它。在Java中,它需要写成\\。因为\也是字符串元字符或[.]或其他正则表达式机制

split将regexp作为参数,而不是文字字符串。你必须避开这个点。或者你也可以简单地使用“.”和子字符串。@JBNizet我觉得这应该是答案:我屈服于压力:@T.J.Crowder你确定吗?我从那个链接中得到java.lang.ArrayIndexOutOfBoundsException:0。@PaulBellora:现在,我也是。注释被删除了,但这里有一个链接:多么奇怪。好吧,IDEOne的用户界面是如此混乱,我可能误读了它。仍然是一个非常方便的工具。奇怪的是,它返回了一个空数组,但我刚刚读到了你现在删除的评论。意味着在任何字符上拆分,默认情况下,拆分会留下尾随的空字符串,在任何字符上拆分只会得到空字符串或类似于JB答案的内容,这很好地解释了这一点!但为什么数组是空的?这就是谜题的另一半:我让你为它添加一个答案。我讨厌正则表达式:要拆分,我真的更喜欢使用Guava的拆分器,它更符合逻辑、更可预测、更高效、更易于使用:感谢您的全面解释
String realstring = "&&&.&&&&";         
String[] partsOfString = realstring.split("\\.");
String part1 = partsOfString[0];
String part2 = partsOfString[1];
System.out.println(part1);
if (string.contains(".")) {
    // Split it.
} else {
    throw new IllegalArgumentException("String " + string + " does not contain .");
}