Поврежденные данные из 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();
}

0 ответов

Другие вопросы по тегам