3
我正在編寫Java代碼來處理從包含需要被其他特殊字符替換的特殊字符的大型機接收的字符串,我的搜索字符是§ÄÖÜäüßö@[\]~{¦}
和替換字符@[\]{}~¦§ÄÖÜßäöü
所以如果字符串中有一個{
我需要ä
來代替它,比如我輸入的是"0.201322.05.2017LM-R{der Dopp"
處理需要被其他特殊字符替換的特殊字符的Java代碼
我的代碼目前是
String repChar = "§ÄÖÜäüßö@[\\\\]~{¦}@[\\\\]{}~¦§ÄÖÜßäöü";
// Split String and Convert
String repCharin = repChar.substring(0, repChar.length()/2-1);
String repCharout = repChar.substring(repChar.length()/2, repChar.length()-1);
String strblob = new String(utf8ContentIn);
// Convert
for (int j=0; j < repCharin.length();j++) {
strblob = strblob.replace(repCharin.substring(j, 1), repCharout.substring(j, 1));
}
byte [] utf8Content = strblob.getBytes();
但它會生成以下呃在 java.lang.String.substring(String.java:1240)ROR
java.lang.StringIndexOutOfBoundsException
的\\的轉義字符我只需要一個\
由於您在更改字符串時通過字符串的長度進行循環,因此會出現錯誤。 – Shane
哪行引發異常?我可以說是'strblob = strblob.replace(repCharin.substring(j,1),repCharout.substring(j,1));'可能是'strblob = strblob.replace(repCharin.substring(j,j + 1 ),repCharout.substring(j,j + 1));' –
我會建議獲取這些字符的字節表示並完全以字節模式收集工作,而不是使用字符串操作。記住一些用多字節編碼的字符。 –