日期:2014-05-20  浏览次数:20730 次

关于string.split问题,知道的进啊!
Java code

public class Test{
    public static void main(String[]args){
        String sql="ab cde  fghi  jklmn   opq";
        String[]ob=sql.split(" ");
        for(String t:ob)
            System.out.println(t);
    }
}


结果为:
ab
cde

fjhi

jklmn


opq
而我想要的结果是:
ab
cde
fjhi
jklmn
opq


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

------解决方案--------------------
ab cde fghi jklmn opq

你字符串 字母和字母之间的空格数量不一样 才导致的

 String[]ob=sql.split(" ");
 这样写 是以一个空格的大小为中间量分解数组

你吧字符串之间的空格数都控制在一个上就 出现你要的结果了

ab cde fghi jklmn opq 这样的字符串
------解决方案--------------------
Java code
 String sql="ab cde  fghi  jklmn   opq";
         sql = sql.replaceAll("\\s+", " ");
            String[]ob=sql.split(" ");
            for(String t:ob)
                System.out.println(t);

------解决方案--------------------
Java code

public class Test{
    public static void main(String[]args){
        String sql="ab cde  fghi  jklmn   opq";
        String[]ob=sql.split("\\s+");
        for(String t:ob)
            System.out.println(t);
    }
}

------解决方案--------------------
使用StringTokenizer
String的split(" ")如果碰到有3个" "它把第一个做为匹配格式的 然后就得到后两个。
StringTokenizer的话是无视有几个" "的 都视为匹配的符号。
如:this is a test
得到:
this
is
a
test
------解决方案--------------------
用StringTokenizer吧,标准的分割 

------解决方案--------------------
“\\s” A whitespace character: [ \t\n\x0B\f\r] 

并不一定都是空格