Добрый день! Наткнулся в инете как делать заглавные буксы в словах, единственное не понял зачем было прописывать String s2 =“”;
И в дальнейшем используется s2 = s2+s1.substring(..,..)....
Я пробовал делать без s2=“”), но тогда ничего не получалось. От этого и вопрос, зачем мы инициализируем String s2=“”;?? Не потому что с каждой итерацией в противном случае s2 будет затираться Новым?
HellScream
20 уровень
Хелп
Решен
Комментарии (10)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia Volkova Java Developer в DXC Master
21 ноября 2019, 17:13
А что у тебя получилось без инициализации s2?
0
HellScream
23 ноября 2019, 09:11
К сожалению нет:(
Выдавало просто последнюю букву из всей строки s1.
А как я ставил, судя и примера, s2="" сразу все работает, по этому я вообще не понимаю логику.
Прикрепил изображение
0
Ksenia Volkova Java Developer в DXC Master
23 ноября 2019, 09:24
Подожди, тут у тебя в другом совсем дело.
На скрине
А нужно
0
Ksenia Volkova Java Developer в DXC Master
23 ноября 2019, 09:35
Просто если ты не инициализируешь переменную s2, то у нее вообще не будет никакого значения (локальные переменные не получают значения по умолчанию, как, например, было бы с переменными класса).
А если нет значения, то не возможно выполнить конкатенацию (s2 + ...).
Если бы s2 была, к примеру, статической переменной класса, она бы проинициализировалась значением null и код уже мог бы выполнится (хоть и не с тем результатом, что нужно).
0
HellScream
23 ноября 2019, 17:27
А, выходит хотя бы " ", но я должен проинициализировать s2, а если бы было, условно Cat cat, то не надо?
0
Ksenia Volkova Java Developer в DXC Master
23 ноября 2019, 18:39решение
Можно даже проинициализировать так
String s2 = null;
- и посмотреть, что получится )
Если бы у класса Cat было поле String s2, то при создании объекта ( new Cat() ) это поле было бы проинициализировано значением по умолчанию (т.е. null)
А если бы поле было статическим, до и без создания объекта стало бы null
+2
HellScream
24 ноября 2019, 09:16
Разобрался, большое спасибо за объяснение!)
0
HellScream
26 ноября 2019, 17:29
Блин, еще вопрос один появился:) Сори, что с таким запозданием.
А если я, допустим, не хочу делать конкатенацию, а сразу хочу s2 присвоить значение s1.substring(...)? По какой причине это нельзя делать?
0
Ksenia Volkova Java Developer в DXC Master
26 ноября 2019, 18:36решение
Конкатенация тут нужна, чтобы "приклеивать" очередной символ к предыдущим.
А сделать просто s2 = s1.substring(...), то в s2 всегда будет только один символ.
В принципе, можно вообще обойтись без s2 - сразу выводить очередной символ в консоль.
+2
HellScream
27 ноября 2019, 16:37
Все, блин, все было настолько просто, а я и не допер...
Спасибо еще раз, за очередной кинутый мне круг помощи:)
0