![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| ts_ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 6.10.2006 Репутация: нет Всего: нет |
Возможно ли к экземпляру класа "string" добавить символ "char" последовательно?
Когда я делаю вот так:
Каждый символ кидает в отдельную строку, как сделать чтоб символы "склеивались" в одной строке? |
|||
|
||||
| Bogdan1024 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1436 Регистрация: 28.9.2005 Где: Киев Репутация: 5 Всего: 13 |
Считывай String, а не char.
-------------------- ![]() |
|||
|
||||
| Injener |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 6.10.2006 Где: СПб Репутация: нет Всего: 1 |
На мой взгляд они и так склеиваются в одной строке. Или я не понял вопрос?
--------------------
Любое дело можно сделать тремя способами:1) правильно2) неправильно3) и так как это делают в армии |
|||
|
||||
| mr.DUDA |
|
||||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
StringBuilder.Append Добавлено @ 18:24
На каждый "+" создаётся новый экземпляр строк, т.к. стринги в дотнет - неизменяемые. Это создаёт дополнительный оверхеад по кол-ву используемой памяти, да и по быстродействию тоже, ведь добавить char в буфер с запасом (как делает StringBuilder) намного быстрее чем создать новый объект строка и скопировать туда старую строку плюс новый чар. З.Ы. а человеку надо считывать посимвольно с консоли, пока не нажмут пробел, как я понимаю -------------------- ![]() |
||||
|
|||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
В этой ситуации, ИМХО, лучший способ создать масив символов char[], достаточно большей длинны большой длинны. А потом сделать
P.S. Но через StringBuilder то ж не плохо |
|||
|
||||
| Injener |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 6.10.2006 Где: СПб Репутация: нет Всего: 1 |
Я попробовал этот пример и пришел к выводу что Console.Read() работает таким образом, что при нажати на клавишу (например "м") операция Console.Read() не будет завершена. Она будет завершена тогда, когда дополнительно будет нажата клавиша Enter и только тогда будет переход к cmnd += chr; А если до нажатия клавиши Enter несколько раз нажимать на симв. кнопки то все это будет записано в буфер, и только после Enter будет продолжение цикла.
Все это я пишу для того, что я не понимаю, для чего это надо, или если сказать по другому что именно надо. Если вопрос в том, можно ли вообще менять строки, то насколько я знаю, нет. Строка созданная в памяти НЕИЗМЕННА. --------------------
Любое дело можно сделать тремя способами:1) правильно2) неправильно3) и так как это делают в армии |
|||
|
||||
| ts_ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 6.10.2006 Репутация: нет Всего: нет |
Да я с самого начала попробовал StringBuilder, все получилось, потом попробовал написаный мною выше метод . В стринг билжере все нормально, а в стринге вот такая штука получилась,
так и не понял почему, при стриге оно запиывает символ "Ентера" в строку? |
|||
|
||||
| ts_ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 6.10.2006 Репутация: нет Всего: нет |
Нужно сделать чтоб первое слово записалось в одну переменную, а второе во вторую, потом <Enter>, попробовал:
Но оно начинает бесконечно считывать символы, в чем ошибка? Это сообщение отредактировал(а) ts_ - 7.10.2006, 01:02 |
|||
|
||||
| Injener |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 6.10.2006 Где: СПб Репутация: нет Всего: 1 |
Если вопрос только в том, чтобы считать строку, а затем разбить ее на слова, то прще
считать строку (Console.ReadLine()) потом разбить ее по символам пробела на массив слов:
--------------------
Любое дело можно сделать тремя способами:1) правильно2) неправильно3) и так как это делают в армии |
|||
|
||||
| Bogdan1024 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1436 Регистрация: 28.9.2005 Где: Киев Репутация: 5 Всего: 13 |
ts_, так ты хочешь чтобы у тебя символы считывались с консоли без нажатия энтэр, так, что ли? Дык так .нетовскими средствами не получится сделать. Если приделывать символы так, как ты говорил в первом посте, то никаких энтеров там не вставляется в строку, не понимаю о чём ты.
-------------------- ![]() |
|||
|
||||
| ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Но я бы воспользовался стринг билдером или массивом char |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |