У меня есть небольшой фрагмент кода, цель которого заменить букву с акцентом на буквы без акцента.
protected String sinAcentos(String str) {
// Cadena de caracteres original a sustituir.
String original = "áàäéèëíìïóòöúùuñÁÀÄÉÈËÍÌÏÓÒÖÚÙÜÑçÇ";
// Cadena de caracteres ASCII que reemplazarán los originales.
String ascii = "aaaeeeiiiooouuunAAAEEEIIIOOOUUUNcC";
String tmp = str;
for (int i=0; i<original.length(); i++) {
// Reemplazamos los caracteres especiales.
tmp = tmp.replace(original.charAt(i), ascii.charAt(i));
}//for i
return tmp;
}
Когда я запускаю эту функцию из IDE (eclipse), ошибки нет.Но затем я экспортирую создать исполняемый продукт, который работает в Windows 7, а также в Windows XP.
При запуске функции возникает ошибка и появляется текст:
Индекс изграницы: 34
Итак, 34 - длина исходной строковой переменной.следовательно, петля плеча петля i между 0 и 33, потому что условие цикла: i < original.lenght()
...
Я изменяю код, добавляя try ... catch в строке замены, и вот как это работает сейчас.
Есть идеи, что не так в коде?