String realstring = "&&&.&&&&";
Double value = 555.55555;
String[] arraystring = realstring.split(".");
String stringvalue = String.valueof(value);
String [] valuearrayed = stringvalue.split(".");
System.out.println(arraystring[0]);
Run Code Online (Sandbox Code Playgroud)
对不起,如果它看起来不好 在我的手机上重写了.我一直ArrayIndexOutOfBoundsException: 0在努力System.out.println.我看了,无法搞清楚.谢谢您的帮助.
split()将regexp作为参数,而不是文字字符串.你必须逃脱点:
string.split("\\.");
Run Code Online (Sandbox Code Playgroud)
要么
string.split(Pattern.quote("."));
Run Code Online (Sandbox Code Playgroud)
或者您也可以简单地使用indexOf('.')和substring()获取字符串的两个部分.
如果目标是获得double的整数部分,你也可以简单地使用
long truncated = (long) doubleValue;
Run Code Online (Sandbox Code Playgroud)
split使用正则表达式作为参数,在正则表达式中.表示"除行分隔符之外的任何字符",因此您可以预期"a.bc".split(".")会创建空字符串数组 ["","","","",""].唯一的原因是它没有发生是因为(来自split javadoc)
此方法的工作方式就像调用带有给定表达式和limit参数为零的双参数split方法一样.因此,结尾的空字符串不包含在结果数组中.
因为所有字符串都是空的,你得到空数组(这是因为你看到ArrayIndexOutOfBoundsException).
要关闭删除机制,您必须使用split(regex, limit)带负数的版本limit.
要在.文字上拆分,你需要使用\.(在Java中需要编写"\\."因为\也是字符串元字符)[.]或其他正则表达式机制来转义它.