请教一下这个到底是啥问题

_um_ 2020-11-08 05:01:53
...全文
6190 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
W-Aires 2020-11-17
  • 打赏
  • 举报
回复
使用
split("A\\|B\\|C")
  • 打赏
  • 举报
回复
这个转换异常
我的项目也经常有这个但是没有影响后来修改了下
参考这个
https://blog.csdn.net/weixin_45535370/article/details/108199382
_um_ 2020-11-09
  • 打赏
  • 举报
回复
引用 6 楼 冰思雨的回复:
哦。我知道问题出在哪儿了。 楼主进行字符串拆分的时候,拆分出来的字符串数组,第一个元素是个空字符串,因为A的左边没有数字。 拆分出来的字符串数组的长度应该是9,比字母(或者数字)的个数多一个。 声明整数数组时 int t[] = new int[y.length-1]; // y.length == 9 ,一共8个数字。 在第一个for循环中 arra[y] = Integer.parseInt(y[i+1]); // 遍历字符串数组时,从第二个元素开始。
真的好谢谢,我写出来了
SilentHunter460 2020-11-09
  • 打赏
  • 举报
回复
String y[] = s.trim().split("A|B|C|D|E|F|G|H"); 
这句产生的数组y,length长度是9,y[0]的值是一个空字符串,y[1]值是1……y[8]的值是8。 y[1]~y[8]都是字符串式的数字,所以后面的Integer.parseInt(y[i])本该是没问题。但是偏偏多了一个y[0]等于空字符串。
冰思雨 2020-11-09
  • 打赏
  • 举报
回复
正则表达式没有写错。
冰思雨 2020-11-09
  • 打赏
  • 举报
回复
哦。我知道问题出在哪儿了。 楼主进行字符串拆分的时候,拆分出来的字符串数组,第一个元素是个空字符串,因为A的左边没有数字。 拆分出来的字符串数组的长度应该是9,比字母(或者数字)的个数多一个。 声明整数数组时 int t[] = new int[y.length-1]; // y.length == 9 ,一共8个数字。 在第一个for循环中 arra[y] = Integer.parseInt(y[i+1]); // 遍历字符串数组时,从第二个元素开始。
冰思雨 2020-11-09
  • 打赏
  • 举报
回复
split函数的参数字符串是一个正则表达式。楼主的 split 的参数写的有问题。 尝试使用”[ABCDEFGH]“作为split的参数。
liuyh1024 2020-11-09
  • 打赏
  • 举报
回复
你分割完,第一个为"",你下面转换时,这个空字符串不是能转成int的,你需加判断。
qkniit 2020-11-09
  • 打赏
  • 举报
回复
没明白, 你期待什么结果?
Want a good work 2020-11-09
  • 打赏
  • 举报
回复
分割完,第一个为空的,下面转换的时候需要判断一下,这个空字符串不是能转成int的。所以会报错
亦夜 2020-11-08
  • 打赏
  • 举报
回复
数字转换异常,因为你切割出来的数组存在空字符串,转换的时候判断一下,不等于空字符串就行了

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧