Поврежденные данные из StringBuilder() в Android Java App
У меня есть код в приложении для Android, который форматирует данные, как это. "[x, y, z]"
,
В основном мы используем класс StringBuilder() в java с его методом добавления, например:
StringBuilder sb = new StringBuilder();
sb.append("[x, y, z");
sb.append("]");
но в некоторых случаях мы делаем базовую конкатенацию строк с помощью оператора плюс, например:
String str = "[x, y, z";
str = str + "]";
Недавно мы столкнулись с ситуацией, когда я вижу, что символ "]" переводится на этот "Ԃ3ҡ嶴u)"
но только в тех местах, которые используют класс stringbuilder. Он начал работать должным образом, но после того, как он начал преобразовывать этот символ, он делал это преобразование каждый раз, когда символ был замечен и в нескольких местах в коде. Это заставило вывод быть похожим на это: "[ x, y, zԂ3ҡ嶴u)";
Это крайне редкое явление, так как я видел, что это случалось только пару раз, но я надеюсь, что кто-то здесь может иметь представление о том, почему это происходит, и есть ли что-то, что может быть сделано, чтобы предотвратить это. Я бы предпочел не удалять stringbuilder из нашего проекта, чтобы исправить такое редкое явление.
Мы заметили это на устройстве Android, и это началось очень внезапно. (Это работало правильно, а затем внезапно все последующие экземпляры "]" были преобразованы)
Какие-нибудь идеи или предложения, чтобы предотвратить это? К сожалению, у меня нет доступа к устройству, которое сообщило эти данные для тестирования.
Спасибо!
------------------------ Редактировать------------------------
Я снова столкнулся с тем же самым (также с классом StringBuilder()), но на этот раз он перевел тот же символ "]"
в "U"
,
Итак, результат выглядел так "[x, y, zU"
Он выглядит так, как будто это всегда тот же символ "]", с которым у класса StringBuilder() иногда возникают проблемы. (Может потому, что это всегда последний персонаж?)
Ура!
------------------------ Редактировать------------------------
Пример одного используемого метода, который отображал это поведение: (только последний "]" имеет проблему, остальная часть строки выглядит как ожидалось)
public static String convertArrayToString(double[] array) {
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int i = 0; i < array.length; i++) {
sb.append(String.valueOf(array[i]));
if ((i + 1) != array.length) {
sb.append(",");
}
}
sb.append("]");
return sb.toString();
}