黑马程序员技术交流社区
标题:
请大神给知道一下
[打印本页]
作者:
秦_奋
时间:
2014-12-9 18:53
标题:
请大神给知道一下
为什么在String的split中不能用“.”分割
会出现Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at DemoTest.main(DemoTest.java:7)
谁能给解释一下这是为什么,
class DemoTest
{
public static void main(String[] args)
{
String str="nihaoheima.txt";
String[] arr=str.split(".");
System.out.println(arr[0]);
}
}
作者:
xingyunjunjun
时间:
2014-12-9 19:03
arr可能为空
作者:
曛丨黯淡浮华
时间:
2014-12-9 19:07
本帖最后由 曛丨黯淡浮华 于 2014-12-9 19:08 编辑
因为点是特殊的符号,所以转换为空,
你可以转义下, \\.
import java.util.*;
class Demo
{
public static void main(String[] args)
{
String str = "ni.hao.hei.ma.txt";
String[] arr = new String[100];
arr = str.split("\\.");
System.out.println(Arrays.toString(arr));
}
}
复制代码
作者:
有陷阱快跑丶
时间:
2014-12-9 19:07
正则表达式的问题 , .在正则中表示任意字符。"\\."就好了 没记错的话:)
作者:
王小忠
时间:
2014-12-9 19:19
你要分割 "." 的话,应该这样分才对String[] arr = str.split("[.]");如果你写成 String[] arr=str.split(".")的话,在split方法体内就会造成歧义,以至于不能正确分割出来,得到的数组长度就会是零~~所以才会报空指针异常
作者:
秦_奋
时间:
2014-12-9 20:20
非常谢谢你:)
但
为什么要String[] arr = str.split("[.]");这么写呢?这是一个特例吗?给给详细讲一下吗
作者:
奋斗的蜗牛ksd
时间:
2014-12-9 22:31
[ ]是正则表达式的一些规则,具体查阅api,里面有
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2