2
所以我正在研究一個項目,由於某些原因僅限於java squawk 1.4。因此,String
類不包含標題中的四種方法。我需要在我的程序中使用這些方法,並得出結論,我必須製作一個Util類,它自己執行這些方法的功能。這樣做是空的,拆分,包含和手動替換
首先,這是否存在某處?顯然,我的第一反應是考慮從String
類中複製源代碼,但這些方法的依賴性對我來說太深了,無法使用。
其次,我很難複製split(String regex)
和replace(CharSequence target, CharSequence replacement)
的行爲。 contains(String)
和isEmpty()
顯然很容易,但我遇到了編碼其他問題的麻煩。
現在,我有split
工作(雖然它的工作方式不同於jdk 7,但我不想要bug)。
public static String[] split(String string, char split) {
String[] s = new String[0];
int count = 0;
for (int x = 0; x < string.length(); x++) {
if (string.charAt(x) == split) {
String[] tmp = s;
s = new String[++count];
System.arraycopy(tmp, 0, s, 0, tmp.length);
s[count - 1] = string.substring(x).substring(1);
if (contains(s[count - 1], split + "")) {
s[count - 1] = s[count - 1].substring(0, s[count - 1].indexOf(split));
}
}
}
return s.length == 0 ? new String[]{string} : s;
}
Replace
要難得多了,我一直在努力幾個小時。這似乎是谷歌/檔案從未冒險的問題。
'String.split(字符串正則表達式)'存在於Java 1.4的...你確定你需要重新實現它? (誠然,我對Squawk一無所知。) –
@JonSkeet是的,我正在使用一種稱爲sun squawk的東西,它不存在於String類中。 –
你能夠提供*是*的可用參考嗎?如果它不是簡單地匹配JDK版本,那麼將很難提供替代實現... –