原帖: http://bbs.csdn.net/topics/320263980
問題內容:
今天寫了個字符串拼接程序,中間用到了split方法。但在測試的時候。總是報數組越界錯誤:java.lang.ArrayIndexOutOfBoundsException ;
我寫的測試代碼如下:
public class transferpic {
public static String concatString(String unselectStr) {
String splitStr = unselectStr.split(".")[0];
String selectStr= splitStr.concat("_2.jpg");
return selectStr;
}
public static void main(String[] args) {
System.out.println(concatString("dfa.jpg"));
}
}
異常信息如下:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at test.transferpic.concatString(transferpic.java:5)
at test.transferpic.main(transferpic.java:12)
如果我在main方法中,將System.out.println(concatString("dfa.jpg")); 改爲System.out.println(concatString(""));
也就是傳入一個空字符串,它不報錯,會給出一個_2.jpg的結果。
解決方法:
在java.lang包中有String.split()方法,返回是一個數組:
1、如果用“.”作爲分隔的話,必須是如下寫法:String.split("\\."),這樣才能正確的分隔開,不能用String.split(".");
2、如果用“|”作爲分隔的話,必須是如下寫法:String.split("\\|"),這樣才能正確的分隔開,不能用String.split("|"); “.”和“|”都是轉義字符,必須得加"\\";
3、如果在一個字符串中有多個分隔符,可以用“|”作爲連字符,比如:“acount=? and uu =? or n=?”,把三個都分隔出來,可以用String.split("and|or");