关于String的spilt方法报空指针的问题(非正则表达式冲突引起)

今天在写一个文件操作脚本时 用到了jdbc编程 当引用split函数来进行前后缀名分割的时候曝出了空指针错误

 

String[] name =rs.getString(1).split("\\.");

video.setPrefixName(name[0]);

 

网上搜索无果 经过测试后一切正常 就是报错 结果思考后成功解决

 

原因 运行时并不知道split函数返回的数组多长,即使后面引用其[0]元素 编译器为了安全 也不会给你编译过 直接报数组越界错误,其实尽管你能肯定绝对不会错误

 

解决方法 通过if方法让编译器放心你的代码

如此即可 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java String类的split()方法可以将一个字符串按照指定的正则表达式分割成多个子字符串,并返回一个字符串数组。这个方法有两种语法: 1. public String split(String regex):根据给定的正则表达式regex,将字符串分割成多个子字符串,并返回一个字符串数组。 2. public String split(String regex, int limit):根据给定的正则表达式regex,将字符串分割成多个子字符串,并返回一个字符串数组。limit参数用于指定最大分割次数。 例如,下面的示例将字符串"java string split method by javatpoint"根据空格分割成多个单词,并使用foreach循环打印出每个单词: ```java String s1 = "java string split method by javatpoint"; String[] words = s1.split("\\s"); // 根据空格分割字符串 for(String w : words) { System.out.println(w); } ``` 输出结果为: ``` java string split method by javatpoint ``` 你还可以使用split()方法的第二种语法来限制分割的次数。例如,下面的示例中,将字符串"welcome to split world"根据空格分割成多个单词,并使用for循环以不同的limit值打印出分割结果: ```java String s1 = "welcome to split world"; System.out.println("returning words:"); for(String w : s1.split("\\s", 0)) { System.out.println(w); } System.out.println("returning words:"); for(String w : s1.split("\\s", 1)) { System.out.println(w); } System.out.println("returning words:"); for(String w : s1.split("\\s", 2)) { System.out.println(w); } ``` 输出结果为: ``` returning words: welcome to split world returning words: welcome to split world returning words: welcome to split world ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值