Java пустой символ в строке - PullRequest
       12

Java пустой символ в строке

5 голосов
/ 29 сентября 2011

Я пытаюсь построить в Java строку длиной не более 3 и длиной не менее 1.

Я строю строку в зависимости от содержимого целочисленного массива и хочу вывестинулевой символ в строке, если содержимое массива равно -1.В противном случае строка будет содержать символьную версию целого числа.

    for (int i=0; i < mTypeSelection.length; i++){
        mMenuName[i] = (mTypeSelection[i] > -1 ? Character.forDigit(mTypeSelection[i], 10)  : '\u0000');

    }

Это то, что у меня есть, но когда я вывожу строку для массива {0, -1, -1}, а не просто получаю строку "0", я получаю строку "0��».

Кто-нибудь знает, как я могу получить желаемый результат?

Спасибо, м

1 Ответ

6 голосов
/ 29 сентября 2011

Я предполагаю, что вы хотите завершить строку первым нулевым символом, как это происходит в C. Однако вы можете иметь нулевые символы внутри строк в Java, поэтому они не будут завершать строку.Я думаю, что следующий код будет производить поведение, которое вы после:

StringBuilder sb = new StringBuilder();
for (int i=0; i < mTypeSelection.length; i++){
    if(mTypeSelection[i] > -1) {
        sb.append(Character.forDigit(mTypeSelection[i], 10));
    } else {
        break;
    }
}
String result = sb.toString();
...