public class newSplit {
public static void main(String[] args) {
String str = "jfjabd/sdjkf=dbvbva!vnjv_";
String[] S = split(str, "[/=!_]");
for (int i = 0; i < S.length; i++) {
System.out.println(S[i]);
}
}
public static String[] split(String s, String regex) {
String[] Regex = new String[0];
for (int i = 0; i < regex.length(); i++) {
for (int j = 0; j < s.length(); j++) {
if (s.charAt(j) == regex.charAt(i)) {
Regex = append(String.valueOf(regex.charAt(i)), Regex);
}
}
}
String re = "[" + regex + "]";
String[] S = s.split(re);
String[] ret = new String[S.length + Regex.length];
if (s.charAt(0) == regex.charAt(0)) {
if (s.charAt(s.length()-1) == regex.charAt(regex.length()-1)) {
for (int i = 0; i < ret.length; i++) {
ret[i] = Regex[i];
ret[i + 1] = S[i];
}
ret[ret.length-1]=String.valueOf(regex.charAt(regex.length()-1));
}
else{
for (int i = 0; i < ret.length; i++) {
ret[i] = Regex[i];
ret[i + 1] = S[i];
}
}
}
else{
if (s.charAt(s.length()-1) == regex.charAt(regex.length()-1)) {
for (int i = 0; i < ret.length; i++) {
ret[i] = S[i];
ret[i + 1] = Regex[i];
}
}
else{
for (int i = 0; i < ret.length; i++) {
ret[i] = S[i];
ret[i + 1] = Regex[i];
}
ret[ret.length-1]=S[S.length-1];
}
}
return ret;
}
//在String[]插入一个元素。
public static String[] insert(String str, String[] s, int index) {
String[] newString = new String[s.length + 1];
for (int i = 0; i < s.length; i++) {
newString[i] = s[i];
}
newString[s.length] = "";
String tem = "";
for (int i = index; i < newString.length; i++) {
tem = newString[i];
newString[i] = str;
str = tem;
}
return newString;
}
//在int[]插入一个元素。
public static int[] insert(int str, int[] s, int index) {
int[] newString = new int[s.length + 1];
for (int i = 0; i < s.length; i++) {
newString[i] = s[i];
}
newString[s.length] = 0;
int tem;
for (int i = index; i < newString.length; i++) {
tem = newString[i];
newString[i] = str;
str = tem;
}
return newString;
}
//将字符串加到字符串数组的末尾。
public static String[] append(String str, String[] STR) {
return insert(str, STR, STR.length);
}
}
错误
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 4 out of bounds for length 4
at newSplit.split(newSplit.java:54)
at newSplit.main(newSplit.java:8)
Process finished with exit code 1