Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Нуль в начале строки


Автор: pil69 19.4.2013, 17:00
В программе использовал следующий код
Код

String text ="0";
text=text+"1";

Выяснилось, что нуль не сохраняется в начале строки в виде символа . Пришлось эту проблему обойти другим способом. Может у кого-то есть объяснение такого странного поведения джавы

Автор: Dummy 19.4.2013, 17:27
Всё сохраняется:
Код

public class For_pil69 {
    public static void main(String[] args) {
        String text = "0";
        text = text + "1";

        System.out.println("text = " + text);
    }
}


Выводит "text = 01". Каким образом вы пришли к выводу, что не сохраняется?

Автор: pil69 20.4.2013, 01:42
Разрабатываю апплет для контроля знаний студентов и в нем хотел по умолчанию установить радиокнопку [0]. Для каждой кнопки "собирается" текст с помощью чекбоксов и в начале этого текста ставится номер радиокнопки. Нуль ну никак не "хотел" выставляться smile
Высылаю код, он пока до конца не отлажен

Автор: pil69 20.4.2013, 02:25
файл не закачался

Автор: antondrafff 22.4.2013, 16:55
Код

String text ="0";
text=String.valueOf(text) + String.valueOf("1");


Если 0 "исчезает" - это значит что тип переменной text и переменной "0" не String, а какой-то отличный от них.
Можно еще написать код следующим образом, чтобы не думать о типах переменных:
Код

String str = "0";
int i = 1;
char ch = 'A';
byte bt = 0x01;

StringBuffer sb = new StringBuffer();

sb.append(str);
sb.append(i);
sb.append(ch);
sb.append(bt);

System.out.println(sb.toString()); 


Результат: 01А1

Автор: Mirkes 26.4.2013, 15:28
Честно говоря не понял в чем проблема.
В предложенном файле указанных фрагментов тоже нет.
У вас слишком много того, чего хе следует делать
Код

     String s = new String();

Согласно документации так НЕ НАДО! Правильный вариант
Код

     String s = "";


Далее предположительно Ваш фрагмент:
Код

    String text ="0";
    text=String.valueOf(text) + String.valueOf("1");

Зачем так сложно? Я неоднократно использовал:
Код

   String text ="0";
  text=text + 1;

прекрасно работает даже без преобразования 1 к символьному виду.
Правда я предпочитаю запись
Код

   String text ="0";
  text+= 1;


Если что-то не так, укажите номера строк в коде, где возникает проблема.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)