|
| 1 | +/*********************************************************************************************************************************** |
| 2 | + 1. Вам дана строка "A journey of a thousand miles begins with a single step." Выполните задания ниже. |
| 3 | + Все манипуляции проводите, не изменяя исходную строку, то есть, не переприсваивая исходную переменную. |
| 4 | + 1.1. Выведите в консоль её длину. |
| 5 | + 1.2. Выведите в консоль первый символ. |
| 6 | + 1.3. Выведите в консоль 16-й символ. |
| 7 | + 1.4. Выведите в консоль последний символ (несколькими способами). |
| 8 | + 1.5. Выведите в консоль пятый символ с конца (несколькими способами). |
| 9 | + 1.6. Найдите индекс первого вхождения слова "begins" (существует специальный метод). |
| 10 | + Выведите его в консоль в виде "The word "begins" found at index 30". |
| 11 | + 1.7. Получитие подстроку "begins with a single step." и выведите её в консоль. |
| 12 | + Чтобы не высчитывать стартовый индекс вручную, используйте индекс, полученный на предыдущем шаге. |
| 13 | + 1.8. Получитие подстроку "thousand miles" и выведите её в консоль. |
| 14 | + 1.9. Удалите подстроку "a thousand miles begins with", чтобы осталось только "A journey of a single step.". |
| 15 | + Выведите в консоль получившуюся строку "A journey of a single step.". |
| 16 | + 1.10. В последней получившейся строке "A journey of a single step." замените "a single step" на "multiple steps". |
| 17 | + В итоге должно получиться "A journey of multiple steps." |
| 18 | + 1.11. В последнюю строку вставьте слово "wonderful". В итоге должно получиться "A wonderful journey of multiple steps.". |
| 19 | + 1.12. Проверьте, что строка начинается с подстроки "A wonderful journey". |
| 20 | + 1.13. Отрежьте точку в конце, то есть, должно остаться только "A wonderful journey of multiple steps". |
| 21 | + Приведите несколько вариантов того, как это можно сделать. |
| 22 | + 1.14. Проверьте, что строка оканчивается на подстроку "multiple steps". |
| 23 | + 1.15. Разбейте последнюю получившуюся строку на отдельные слова. |
| 24 | + Должен получиться массив ["A", "wonderful", "journey", "of", "multiple", "steps"]. |
| 25 | + 1.16. Склейте обратно все слова в одну строку, но уже с разделителем "; ". |
| 26 | + Должна получиться строка "A; wonderful; journey; of; multiple; steps". |
| 27 | + 1.17. Определите, содержит ли строка из пункта выше подстроку "wonderful journey". |
| 28 | +***********************************************************************************************************************************/ |
| 29 | + |
| 30 | +string phrase = "A journey of a thousand miles begins with a single step."; |
| 31 | + |
| 32 | + |
| 33 | +/******************************************************************************************************************************************** |
| 34 | + 2. Создайте из строки из первого задания объект "StringBuilder". Все манипуляции из заданий ниже должны выполняться именно |
| 35 | + с изначально созданным объектом "StringBuilder". Он не должен пересоздаваться или приводиться к строке методом "ToString". |
| 36 | + 2.1. Выведите в консоль строку, которую он содержит. |
| 37 | + 2.2. Выведите в консоль длину строки, которую он содержит. |
| 38 | + 2.3. Выведите в консоль 25-й символ. |
| 39 | + 2.4. Выведите в консоль второй символ с конца (несколькими способами). |
| 40 | + 2.5. Измените последний символ на '!'. Выведите получившуюся строку в консоль. |
| 41 | + 2.6. Обрежьте строку до первых 29 символов. Предложите несколько вариантов это сделать. |
| 42 | + Выведите полученную строку в консоль. |
| 43 | + 2.7. Увеличьте строку обратно до 56 символов (только её длину). Выведите её в консоль, а также её длину. |
| 44 | + Почему длина равна 56, а в консоли мы всё также видим только 29 символов? |
| 45 | + 2.8. Восстановите исходную строку, не пересоздавая объект "StringBuilder". Предложите несколько вариантов. |
| 46 | + 2.9. Превратите строку "A journey of a thousand miles begins with a single step." в строку |
| 47 | + "A-journey-of-a-thousand-miles-begins-with-a-single-step.". |
| 48 | + 2.10. Очистите "StringBuilder". Добавьте слова "One", "Two" и "Three", разделённые запятой. Не компонуйте необходимую |
| 49 | + строку вручную, чтобы добавить её целиком. Вам нужно добавить три слова через разделитель используя методы "StringBuilder". |
| 50 | + В результате должно получиться "One,Two,Three". Предложите несколько вариантов это сделать. |
| 51 | +********************************************************************************************************************************************/ |
| 52 | + |
| 53 | + |
| 54 | +/********************************************************************************************** |
| 55 | + 3. Для строки ниже я пытаюсь получить последний символ '!', но почему-то получаю ошибку. |
| 56 | + В чём причина? Исправьте код. |
| 57 | +**********************************************************************************************/ |
| 58 | + |
| 59 | +/* |
| 60 | + Индекс последнего символа определён неверно. Индексирование начинается с нуля, а значит индекс последнего символа будет не 10, а 9. |
| 61 | + Но лучше использовать специальный синтаксис указания индекса с конца. |
| 62 | +*/ |
| 63 | + |
| 64 | +string greeting = "Hi, there!"; |
| 65 | +Console.WriteLine(greeting[10]); |
| 66 | + |
| 67 | + |
| 68 | +/********************************************************************************************************* |
| 69 | + 4. Вам дана строка. Выполните задания ниже. Все манипуляции проводите, не изменяя исходную строку. |
| 70 | + 4.1. Обрежьте пробельные символы только в начале и выведите в консоль. |
| 71 | + 4.2. Обрежьте пробельные символы только в конце и выведите в консоль. |
| 72 | + 4.3. Обрежьте пробельные символы с обоих сторон и выведите в консоль. |
| 73 | + 4.4. Обрежьте с обоих сторон не только пробельные символы, но и символы '$' и '*'. |
| 74 | +*********************************************************************************************************/ |
| 75 | + |
| 76 | +string str = "\t **$$ Stay curious, stay inspired!! $$** \n"; |
| 77 | + |
| 78 | + |
| 79 | +/******************************************************************************************************************* |
| 80 | + 5. Я разбиваю входящую строку на подстроки по разделителю ";". Далее я вывожу полученные части в консоль. |
| 81 | + Но в консоли для некоторых строк я почему-то вижу ведущий пробел, хотя он мне не нужен. |
| 82 | + Предложите варианты, как можно избавиться от данного ведущего пробела, если: |
| 83 | + 5.1. Формат входящей строки гарантирует, что разделитель всегда, помимо точки с запятой, |
| 84 | + будет содержать ещё и пробел, то есть, возможен только единственный вариант "; ". |
| 85 | + 5.2. Формат входящей строки гарантирует, что разделитель всегда будет содержать ";", но он может |
| 86 | + быть как с пробелом, так и без, то есть, возможны варианты ";" и "; ". Например, строка может |
| 87 | + выглядеть как "One; Two;Three". |
| 88 | + 5.3. Аналогично пункту 5.2, но также ещё могут встречаться пустые вхождения, которые вам нужно отсекать. |
| 89 | + То есть, входящая строка может выглядеть как "One; Two;Three; ;Four;;Five;Six". |
| 90 | +
|
| 91 | + Для примера входящая строка состоит только из трёх частей, но давайте предположим, что в реальности она |
| 92 | + может содержать сотни частей. |
| 93 | +*******************************************************************************************************************/ |
| 94 | + |
| 95 | +string inputString = "One; Two; Three"; |
| 96 | +string[] parts = inputString.Split(';'); |
| 97 | +DisplayStringParts(parts); |
| 98 | + |
| 99 | +// Вспомогательный метод для вывода частей строки в консоль. Его трогать не нужно. |
| 100 | +static void DisplayStringParts(string[] parts) |
| 101 | +{ |
| 102 | + foreach (string part in parts) |
| 103 | + { |
| 104 | + Console.WriteLine($"\"{part}\""); |
| 105 | + } |
| 106 | +} |
| 107 | + |
| 108 | + |
| 109 | +/*********************************************************************************************************************************** |
| 110 | + 6. Проверка строк на пустоту. |
| 111 | + 6.1. Объявите пустую строку несколькими способами. |
| 112 | + 6.2. Объявите строковую переменную, содержащую значение "null". |
| 113 | + 6.3. Объявите строковую переменную, содержащую только пробельные символы различного характера. |
| 114 | + 6.4. Проверьте все выше созданные строки на пустую строку. |
| 115 | + 6.5. Проверьте все выше созданные строки на пустую строку или "null". |
| 116 | + 6.6. Проверьте все выше созданные строки на пустую строку, "null" или строку, состоящую только из пробельных символов. |
| 117 | +***********************************************************************************************************************************/ |
| 118 | + |
| 119 | + |
| 120 | +/*********************************************************************************************************************************** |
| 121 | + 7. Вы написали функцию, которая проверяет, содержит ли переданная строка символ '.'. Вы пытаетесь передать в неё различные |
| 122 | + данные, включая строки, числа, символы и даже объект "StringBuilder". Но некоторые строки кода не компилируются. |
| 123 | + Раскомментируйте их и предложите вариант исправления. |
| 124 | +***********************************************************************************************************************************/ |
| 125 | + |
| 126 | +Console.WriteLine(ContainsDot("I love .NET")); |
| 127 | +//Console.WriteLine(ContainsDot(new StringBuilder("Hi there!"))); |
| 128 | +//Console.WriteLine(ContainsDot(5.78)); |
| 129 | +//Console.WriteLine(ContainsDot('.')); |
| 130 | + |
| 131 | + |
| 132 | +static bool ContainsDot(string str) |
| 133 | +{ |
| 134 | + return str.Contains('.', StringComparison.Ordinal); |
| 135 | +} |
| 136 | + |
| 137 | + |
| 138 | +/******************************************************************************************************* |
| 139 | + 8. Выведите число PI с 7-ю знаками после запятой в текущей культуре и в культуре Британии (en-GB). |
| 140 | +*******************************************************************************************************/ |
| 141 | + |
| 142 | + |
| 143 | +/********************************************************************************************************************* |
| 144 | + 9. Создайте дату 2024-12-07 и выведите её в текущей культуре, культуре США (en-US) и культуре Китая (zh-CN). |
| 145 | +*********************************************************************************************************************/ |
0 commit comments