На этом уроке мы немного поговорим о классе String. Им также удобно пользоваться, как и примитивными типами. Однако есть некоторые особенности реализации этого класса, о которых необходимо знать при разработке программ.
Дата отправки отчёта:
31 октября 2016 г.
Задание выполнено: за
30 мин.
Чему научился:
Работать со строками
Что было сложным:
Ничего
Комментарии:
Нет
Оценка видео-уроку:
Оцени работу
Сохранить страницу:
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.
Научился: тип String не относится к примитивным
Присваиваемое значение заключается в "двойные кавычки"
'Апострофы' применяй в JAVA для присвоения одиночных символов.
"Кавычки " применяй в JAVA для присвоения неодиночных символов, строк текстов.
Пустая строка допускается
Допустимы экранирование спецсимволов ' " \
Переменные типа String не редактируются (не меняются, а копируются с изменениями) в месте их хранения в памяти
При редактировании переменной типа String создаётся новая копия с изменениями
Отсюда потенциальная проблема - при обработке String в цикле, множество копий больших переменных нагружают память и тормозят работу
Проблему тормозов решает класс StringBuilder, умело редактирующий string с оптимизацией расходования памяти
При использовании знака сложения текста и чисел работает конкатенация, учитывай! Скобки помогают отключить конкатенацию:
"ответ: " + 5 + 7 возвратит "ответ: 57"
"ответ: " + (5+7) возвратит "ответ: 12"
Сравнение разных переменных String С ОДИНАКОВЫМ ЗНАЧЕНИЕМ возвратит true
Сравнение разных переменных String С ОДИНАКОВЫМ ЗНАЧЕНИЕМ возвратит false ЕСЛИ ПРЕДПРИНИМАЛОСЬ РЕДАКТИРОВАНИЕ
Научился: Научился определять длину расширенной строки, копировать строки, конкатенировать. Набрал пример из урока, сконкатенировал строки "дом" и "2", получилось "дом2" :D. В моем случае нет отдельного типа String, поэтому я его смоделировал вручную, создав схожую immutable-реализацию. Проверил оптимизацию компилятора на хранение по одному адресу одинаковых строковых констант. Радует то, что оптимизация работает даже без дополнительных ключей компилятора :)