当前位置: 代码迷 >> J2SE >> 为何String.split("")会报错
  详细解决方案

为何String.split("")会报错

热度:434   发布时间:2016-04-23 20:28:54.0
为什么String.split(".")会报错

------解决方案--------------------
str.split("\\.")
这样试试。
------解决方案--------------------
转义 

str.split("\\.") ; // or 
str.split("[.]"); 

------解决方案--------------------
String[] array = str.split("\\u002e");

------解决方案--------------------
正则里面  . 是指任意字符
所以必须要转义 楼上写的\\.  [.]  都可以
------解决方案--------------------
学会看一下异常堆栈
现在报错是数组越界,意思是说array数组取第一个元素的时候无法取到
导致数组越界的错误
方法同楼上和楼上上



------解决方案--------------------
需要转义\\.
------解决方案--------------------
可以在api文档 查一下 Pattern  这里有java正则
------解决方案--------------------
果断学习了!
------解决方案--------------------
那个. 被当成正则表达式了!
------解决方案--------------------
 .   是正则里面 
 
 * @param  regex
     *         the delimiting regular expression
     *
     * @return  the array of strings computed by splitting this string
     *          around matches of the given regular expression
     *
     * @throws  PatternSyntaxException
     *          if the regular expression's syntax is invalid
     *
     * @see java.util.regex.Pattern
     *
     * @since 1.4
     * @spec JSR-51
     */

 public String[] split(String regex) {
        return split(regex, 0);
    }

------解决方案--------------------


“.”是转义字符,必须得加"\\"。
------解决方案--------------------
转义一下就可以了
------解决方案--------------------
// 反斜杠
/t 间隔 ('/u0009')
/n 换行 ('/u000A')
/r 回车 ('/u000D')
/d 数字 等价于[0-9]
/D 非数字 等价于[^0-9]
/s 空白符号 [/t/n/x0B/f/r]
/S 非空白符号 [^/t/n/x0B/f/r]
/w 单独字符 [a-zA-Z_0-9]
/W 非单独字符 [^a-zA-Z_0-9]
/f 换页符
/e Escape
/b 一个单词的边界
/B 一个非单词的边界
/G 前一个匹配的结束

^为限制开头
^java     条件限制为以Java为开头字符
$为限制结尾
java$     条件限制为以java为结尾字符
.  条件限制除/n以外任意一个单独字符
java..     条件限制为java后除换行外任意两个字符


加入特定限制条件「[]」
[a-z]     条件限制在小写a to z范围中一个字符
[A-Z]     条件限制在大写A to Z范围中一个字符
[a-zA-Z] 条件限制在小写a to z或大写A to Z范围中一个字符
[0-9]     条件限制在小写0 to 9范围中一个字符
[0-9a-z] 条件限制在小写0 to 9或a to z范围中一个字符
[0-9[a-z]] 条件限制在小写0 to 9或a to z范围中一个字符(交集)

[]中加入^后加再次限制条件「[^]」
[^a-z]     条件限制在非小写a to z范围中一个字符
[^A-Z]     条件限制在非大写A to Z范围中一个字符
[^a-zA-Z] 条件限制在非小写a to z或大写A to Z范围中一个字符
[^0-9]     条件限制在非小写0 to 9范围中一个字符
[^0-9a-z] 条件限制在非小写0 to 9或a to z范围中一个字符
[^0-9[a-z]] 条件限制在非小写0 to 9或a to z范围中一个字符(交集)

在限制条件为特定字符出现0次以上时,可以使用「*」
J*     0个以上J
.*     0个以上任意字符
J.*D     J与D之间0个以上任意字符

在限制条件为特定字符出现1次以上时,可以使用「+」
J+     1个以上J
.+     1个以上任意字符
J.+D     J与D之间1个以上任意字符

在限制条件为特定字符出现有0或1次以上时,可以使用「?」
JA?     J或者JA出现

限制为连续出现指定次数字符「{a}」
J{2}     JJ
J{3}     JJJ
文字a个以上,并且「{a,}」
J{3,}     JJJ,JJJJ,JJJJJ,???(3次以上J并存)
文字个以上,b个以下「{a,b}」
J{3,5}     JJJ或JJJJ或JJJJJ
两者取一「
------解决方案--------------------

J
------解决方案--------------------
A     J或A
Java
------解决方案--------------------
Hello     Java或Hello






参考
------解决方案--------------------
上个月就有人发这个 你要是能百度下“为什么String.split(".")会报错”也都知道了

ps:google五毛党来喷吧 我准备好了 
  相关解决方案