Добавил:
2200 7008 9480 6099 TKFF БЛАГОДАРНОСТЬ МОЖНО ТУТ ОСТАВИТЬ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДИПЛОМ 2025 / 4 курса_МТУСИ / 1 КУРС / Информатика / С# для чайников - Мюллер.pdf
Скачиваний:
0
Добавлен:
04.06.2025
Размер:
53.3 Mб
Скачать

Обработка последовательности чисел

Зачастую программы получают в качестве вводимых данных строку, состо­ ящую из нескольких чисел. Воспользовавш ись методом гвза ат mгтэав б р lвы сможете легко разбить строку на несколько подстрок, по одной для каждого числа, и работать с ними по отдельности.

Функция гтэа n u преобразует единую строку в массив строк меньшего размера с применением указанного символа-разделителя. Например, если вы скажете функции гтnа p u eчто следует использовать в качестве разделителя за­ пятую, строка t l Iг I o t превратится в три строки - t mtй t w tи t ot uч N,i ,iл

Е. si-usisi может быть любой символ, используемый для разделения эле­ ментов коллекций.) В приведенной далее демонстрационной программе ме­ тод гтэа ( б еприменяется для ввода последовательности чисел для суммиро­ вания:

FF

B

FF

;

F F

 

 

 

 

 

 

 

 

 

ь

 

 

 

г

 

 

 

FF

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FF

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,

 

 

ье

 

 

 

 

 

 

 

 

ы m

 

 

 

 

 

 

л

 

i

 

 

 

 

 

п т r

FF

 

 

 

 

 

 

 

)

 

 

. г

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

фрсирко

Чyмлеомлсо

б ть

 

 

 

 

 

 

 

 

тт

w

вдгл оСп

ь

 

еС у в l

ис

hн и

звиь

l

2

ь

тт

ч ьзвe

hову

,

п

у

 

елЕиь

l

уи

ту

вeву­

гл оиЬ

иь

е е 6

tлСу

ч

згвдсву

 

, i,

 

T" щ

 

 

 

 

пцнм , г

жлшлжоми

:

, T

T

 

 

 

 

иемлсе l - иоDосеи

 

:

лсзые

) рзк леб6

шл-мит ь

 

FF

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ь

 

 

 

 

 

 

 

г

 

 

 

 

 

FF

ь

 

 

 

 

 

 

 

 

 

г

 

 

 

 

 

ь

,

 

 

 

г

 

 

 

 

 

 

 

 

 

FF

 

 

 

 

 

 

.

 

 

 

 

 

 

зяК

аьВэлК пК ­,#.nДК щ ) .у)к ъ ъ ь ).n к#ьdК#кКзоК

4

2

2 2 2

Программа проходит по списку, рассматривая запятые, пробелы (или и то, и другое) как разделительные символы. Она пропускает "число" а и выводит общую сумму корректных чисел, равную 1 О. В реальных программах, однако, вряд ли можно просто так игнорировать некорректные числа, никак не сооб­ щая об этом пользователю. При появлении во входном потоке любой програм­ мы "мусора" обычно требуется тем или иным способом обратить на это вни­ мание пользователя.

Объединение массива строк в одну строку

Класс String имеет также метод Join ( ) . Если у вас есть массив строк, мож­ но использовать Join ( ) для конкатенации всех строк . Можно также указать, что между строками в массиве следует вставить определенные символы:

хCкт1 l Л 'хр 4,х = { =

== = =

= =

=

== =

Врезультате получится строка theBrothers, которая представляет собой

ае Chuck : Bob : Steve : Mi ke " (имена в ней разделены двоеточием). Можно было

", ", " \tее м­ еа­ е е ­использовать

(первый элемент представляет собой запятую с последующим пробелом, вто­ рой - символ табуляции, а третий - несколько пробелов подряд).

Уп_равление выводом npQrpar.,м.ы

Управление выводом программы - важный аспект работы со строками. Подумайте сами: вывод программы - это именно то, что видит пользователь. Не имеет значения, насколько элегантны внутренняя логика и реализация программы - это вряд ли впечатлит пользователя; куда важнее для него кор­ ректность и внешнее представление выводимых программой данных.

Класс String предоставляет программисту ряд методов для форматирова­ ния выводимой строки. В следующих разделах будут рассмотрены такие мето­ ды, как Trim ( ) , Pad ( ) , PadRight ( ) , PadLeft ( ) , SuЬstring ( ) и Concat ( ) .

Использование методов Trim ( ) и Pad ( )

Из раздела "Удаление пробельных символов" вы узнали, как пользоваться методом Trim ( ) и его более специализированными вариантами TrimFront ( ) и TrimEnd ( ) . В данном разделе обсуждается другой распространенный метод форматирования выходных данных. Можно использовать методы Pad, которые добавляют символы к любому из концов строки, чтобы расширить строку до некоторой заранее заданной длины. Например, можно добавить пробелы слева

86

ЧАСТЬ 1 Основы программирования на С#

=

=

=

 

=

=

 

=

=

 

nn

=

 

=

=

=

 

=

= n =

m=

=

=

=

g(=(*= (=( (

(

* (g ( =(n T

=

=

определяет список имен lрмe(мрл.тпы. с разными выравнива­ нием и длиной (вы можете переписать программу так, чтобы эти имена счи­ тывались с клавиатуры или из файла). Функция юерт.з усн. ачала выводит эти имена на экран в том виде, в котором они получены программой. Затем вызы­ ваются методы mлрн. з уи. хенсрпсв. з у асуществен. но улучшающие внешний вид выводимых программой строк:

м G­

­

мK

i

м ,K

K­д

м­

 

м с

KK

 

м ,K

д

­

t

д ,b ­ l

, G­

­

K

o

 

я ,K

­K

 

, с

K

 

ц ,K

l

­

м

м ,c­

Процесс выравнивания начинается с создания копии переданного ему мас­ сива тено мcКод. начинается с цикла, вызывающего ол. н. з удля. каждого шб­1

мента массива, чтобы удалить лишние пробельные символы с обоих концов строки. Затем выполняется второй цикл, в котором происходит поиск самого

оое ЧАСТЬ 1 Основы программирования на С#

длинного элемента массива. И наконец, в последнем цикле для элементов мас­ сива вызывается метод PadRight ( ) , удлиняющий строки и делающий их рав­ ными по длине.

Метод PadRight ( 1 О ) увеличивает строку так, чтобы ее длина составляла как минимум 1 О символов. Например, если длина исходной строки - 6 симво­ лов, то метод PadRight ( 1 О ) добавит к ней справа 4 пробела.

Наконец, код проходит по полученному списку строк, выводя их на экран. Вот и все.

Использование метода Concat ( )

Зачастую программисты сталкиваются с задачей разбиения строки или вставки некоторой подстроки в середину другой строки. Заменить один символ другим проще всего с помощью метода Replace ( ) :

х1:им . о "щим1,х )с6г сm:им1о W

.1,.тrщ), nв г, oив

Этот фрагмент исходного текста преобразует начальную строку в " Danger ! NoSmoking" . Замена всех вхождений одного символа (в данном слу­ чае - пробела) другим (восклицательным знаком) особенно полезна при гене­ рации списка элементов, разделенных запятыми для упрощения анализа. Од­ нако более распространенный и сложный случай предусматривает разбиение единой строки на подстроки, отдельную работу с каждой подстрокой с после­ дующим их объединением в единую модифицированную строку.

Приведенная далее демонстрационная программа RemoveWithSpace исполь­ зует метод Concat ( ) для удаления из строки пробельных символов (пробелов, символов табуляции и новой строки).

1:им6

 

гW

,

Д

 

 

 

 

 

 

 

цц 1,гс

,

e3:

,6тщ),

 

 

.

 

 

 

 

цц

тщ),1,гс

,e 3:

,6тщ),

 

 

 

 

 

имщг,

 

 

 

 

 

 

т

:)

)rщ

,хс1хщ г

 

 

 

 

 

 

 

т

:)

 

 

:)щ с:,

"щ:имn

х:им1 l К щх1

 

 

 

 

 

цц

 

 

3D ,6тщ),

O

o , й

вЗимгй o З егV

 

 

 

 

 

)5щх l К

 

 

 

 

 

цц

 

 

 

 

 

 

р

 

 

 

 

 

цц

 

 

. н

3:

:

щИим х:им1 о W

 

 

 

 

 

хEим1

 

 

 

 

 

ссим

r с, кeх:

,г:им,

n ос т у оB

W

 

 

 

 

 

цц

 

,скurneх:

,nо

 

х оW

 

 

 

 

 

 

ссим

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ГЛАВА

3

Р

абота со строками

н

 

 

 

 

 

 

 

 

 

 

С.

// ПОИС!С

СИМВОЛОВ

Л

в =

;

;

;

<

 

llac"Tr. T

g"n".")< g)i ("))"

6)"

)i.."=Tll="g<=."nt Trn"ll"))r

6"ll=R())r. n)(pg".

 

)

(.ll(c"<.(=nill="g(o<g)".(Te"Rn")(=T."e.(.

T"ll"T."n")Rio(e<=T.i<.(T" lle

i"b

 

="

 

 

 

 

 

(.ll(.6"ll>o="g t/$

 

= <nll=6"($q

..i

6")T"" Te"Rn")(=.i." "

ll(s

=" (o<(.T"ll"T (o.i<<(Ti lleu

=" re"n(o

(.lli)" ".=o"<gTll="g.=n"

g"e6") 6".i

(o(<e"n

"<g)".()" ==n=g=nill")r T<"

g(.(.T"ll rn

"g"n

t/$

"

s $qi xT"oT)ioi"g()n".< 6")T"

)i"

n")"e" <(.T"lli (o(<e"n)" "

.i<<(Ti T<g)"." "oT)ioi".""o)ic")("

=.iorTi"g c

"T. )".")"

ll"

.")g"T

(o6")"ni))"

".i<<(Ti

 

 

 

 

 

 

 

x")Ti=(g")i (= (. )ie" ( T"n=o(

6)"="llT

"ll"T" .g)"."

()s

n".< ."

")"

")iT)r

 

T"oT)ioi"g.=."g"n".

t/$."

$iqxx")Tr Tro"T

b>ar. r$n; i xT"oT)ioi"g6=<g=a<g)".=i Tg")"

T<a<g)".=6".ll" 6)"="lli

ig".p=).

(=f($<"

i x"=

"n(

="

<g)"(.( ."oniTi=< )".="o)icill>

)"

"6)"="llin

 

 

 

 

 

 

 

 

 

 

 

90

 

ь

9

­

 

 

 

 

 

 

 

,

 

 

Использование метода Split ( )

t-'4>

-(--(

l

а

lаl

Ийl71.'4>

t-'4>.(-'4>93--)-'4>.(9'4>

t-)-(9(9)(

-(-'4>.'4>.

 

йИаз

)

з

l

 

'4>.9(a'4> )3t'4>.:EЕ'4>.(991

 

3t'4>3'4>7 -(В(9)4 t'4>

3-(..(99'4>

 

Е(.(a)

9(

3(-1B

 

ЛЙЙ(

).91

б-'4>)- 9(-9'4>

t'4>.u-(-:E )

-'4>J9'4>

t'4>.ua)-:E 3uЕ(3-.(99'4>

7'4>.((

ЛЙЙ(a-).9u

S Йu9aБ)S

3 )3t'4>.:EЕ'4>.(9)(-

uJ(

Е9(a'4>-'4> Йu9aБ))

 

 

 

а '4>Г-a'4>. -(-'4>.(

.1t'4>.94SЕ(

'4>

9('4>7г'4>.)-1(

.(

ствия:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

»»ш

ы

i

 

 

 

 

 

 

 

 

 

 

 

 

»»

 

 

ш

 

 

 

ы i

з

 

Г

 

 

 

 

 

 

 

 

 

 

 

Л

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

»»

 

 

 

 

 

 

 

 

 

 

 

 

 

 

»»

 

ы

 

.

 

И ы

з

(

Л

 

 

 

 

 

 

 

 

 

 

 

 

»»

 

1

ь д ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

» »

 

 

 

 

 

 

 

Г

 

 

ы

з Л

 

 

 

 

з

 

ы

 

 

 

ы

Л

 

 

 

 

 

ми

 

1 ы

 

вi

 

t

 

Г

ы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

а гтеш вороии лкя рааеиония внелнеш отрееи на снеиоотве

велотрее ио,

векзатотоя

ктне.ия

,пna e t ыо тлакяостси

оисвекаси

в еаыоотво оисве,

кевграалокитокошолеоеекзет

раалокитоки но векйыайтоя

в велотрееи,

оеала,

отоя гккоет

ин тлаконияАaаеая

кеоиеа вреота и соноо велвориона еeиееас

ври роакиаа.ииt

 

 

 

 

 

 

 

 

 

 

 

 

ГЛАВА 3 Работа со строками

91

=

ьз

p я

r

i = к

eяк e )) ( к r));д

гестеь исармевнменолиПг)na

s ;c

dF,цс(

sс Fd#ц ькнсолиnосминиво

цдемевнеьт, т веь рличетитнйоно.-ь исармевнйкделртааь чи nосминвоь кнсолоьйлодrев бенн ткнитдевт сноь ноолееь т очвиоиеныестеь исармевн )т ливвомкдроиеc овuьт" c тносоььь.а ноло­ ысателеввомnсиамеlнеыодр. оатMизкзкнсолиысактиатиенкзыесемеввоьnю=ак) ,s а амеенкделртааь талT

тк )) = iWы

екда ве рличивоавоеПменолПг)naаm Bлдз лиrлоаонаыиисармевниакыоднй чренnосминыормодоивате,дз рличивазnосминитетолит nаарсвек клоблик. лсомевомесиисармевни<моrво сичмеаиннлоыодванеднвеемолаnалиносе< лоносееыоличивет нибдТьоWaТиысамесSь т k адиканИ­етол оакдит слкыой вевфаиднвомтале к акыоднчотиваемMекна чвиломекнт лсобвоьоикна(о

Таблица 3.1 . Модификаторы, используемые функцией string . Format ( )

Модификатор

Пример

 

Результат

Примечание

r , ilpllptlu

c . 1 eiouuc... . . 01u

"... . . 0u

enoirouigotstumginsnsu

linpnstu

 

 

 

rsupgssrrnonurlinrpgot,

 

 

 

 

ptsussgpigrsriu

 

c .1 e ciou,...

. . 01u ' ".. . . . 0)u

 

 

2u, ilsuslrnt,

c . 1 20 ciou: > ...u

.....u

frotoruiouuslotsutnslou

prlutnsoru

 

 

 

 

 

dutnsoruiutos. c .1 c : >iouuc ...

. . 0u

. . ... 0d,...u dmilsspgusgolluogoupgst.

rrplpsngotprnu

 

 

pguumgrnstu

srrolu

 

 

 

 

 

 

 

 

 

 

 

УО i1f­c

E2#".a 6( "am(..,( ". (#,c #( VD

о

и

ф

и

а

тор

Пример

М д

 

 

к

 

F - число с плавающей точкой

N - ЧИСЛО

х - шестнадцатеричное число

ыоойнийапйр й

{о : # . . . }

{ 0

: # или 0 % }

{ 0

: F2 } для 123

. 4 567

{О : N } для

123456 . 78 9

{0 : Nl } для

1234 5 6 . 7 8 9

{О : NO } для

123456 . 78 9

{ О : Х } для 123

{ 0

: 000

. 00 } для 12

. 3

{ 0

: ###

. ## } для 12

. 3

{0 : ##0 . 0# ) для О

{0 : #00 . #% } для

. 1234

 

{ О : #00

. #% } для

. 0234

 

Рез л ь

 

а

т

у

т

 

 

123 .

45

 

 

 

 

123, 4 5

6 . 7 9

123, 45

6

. 8

123 ,

457

 

 

Ох7В

 

 

 

 

 

012 .

30

 

 

 

 

12 . 3

 

 

 

 

 

П р и меча н ие

Число после F указывает количество цифр после десятичной точки

Добавляет запятые и округляет число до бли­ жайших сотых

Указывает количество цифр после десятичной точки

Указывает количество цифр после десятичной точки

Шестнадцатеричное чис­ ло 7В равно десятичному числу 123. Применяется только для целых чисел

Вносит О там, где нет ре­ альных цифр

Вносит пробелы; полезен при выравнивании по де­ сятичной точке

о с о й

Комбинация О и # застав­

 

 

ляет вносить пробелы на

 

 

местах # и обеспечивает

 

 

наличие как минимум

 

 

одной цифры, даже если

12

. 3%

число равно О

% заставляет выводить

 

 

число как проценты (ум­

 

 

ножая на 1 00 и добавляя

02

. 3%

символ %)

 

Г

АВА

3

Работа со строками

93

Л

 

 

jВЕТОВДИСМИtО o-eСОoН!ОЕ ТИАПОПЕТoBВЕТЕТСОBe!В

АИАЕТВЗoBСЗВoВ

 

ЕИН.ti,ВС!ЕТИ

ПВЗВЕЕТo ОoЕС/СВЕТПВС!Be ПВСВЗВЕЕBe aПa oЕС/В

СОВЕТ

ЕaВ ПОАПВtОСЗСЕТЕОТЕХАЕТСООИa В ,ОПB/СНЕТВ!В ССtBЗВЕЕТЕТ/ЕТОo a

ЗВЕТОВ1И-ЕТВСЕ Т ДИСМИЕТТЕХtО.tio- ;,СОoe!ОЕ Т!Е!ОВaЕТПОПB/a!iBeАН

АЕТСОКИ

 

 

ОB ЕС ООЕАОПЕЕТ/ БЕТОЗВЕТОВВЗО!ЕО ИАПОПЕoО!СЕТЕЕТВ!В

АПВcatИКИ

 

ОСЕТОСЕТtОСЗСЕТJ ООЕТОСЕВПСИЗВЕНeЕТАН! tBЕОcИИ 1И-ЕТВСЕ Т \СПВВ:

 

ПСa ЕВОЕТrОВИЗОАЕТИ! !ВАЕТИeЕТО ЕСЕТОTОССЕЕТBВВЕТaАПОПЕoО!СЕТЕАН

 

ИЗВЕЕОTЕТОЕТЗВЕТОВx

 

 

 

bЕТtgЕО CСhОO K

ЗЕСП!

CСaeЕ rС ЕТЗЗЗRЕТoЕТ1ОЖ:1S Е ТСC ЗЗreЕ ЗЕТЕТ!CОПЕТСa!

aЕТtD

hЗ CС1tЕt rС1Ж:1eЕТОЕОЕТR OСПCЗfОЕТ С ЕТОO<!aЕТrПЗaСЕТЕТСЕТОЕТЕ•

tCttrC

ЕСЕ!

ea О

htЕR CСhОOО ЕТЗЕСП !

a ht •ЕТЕaKОПaЗa1Ж:1oЕТОt ЕТЗrПОath t ЕТЕТe ЕТ hЗ1Ж:1tt htCС ЕТЕТЕПЗb

fОСЕТЕТeЕТrПСDПЗCCe

TtСНtС И-ЕТВСДИ!С -ИtМТЕХrСЗaС1Ж:1ТЕХЕТ-n-aateЕТЕТЕОЕТtЕС1Ж:1RЕТС

ЕТKЕТ1Ж:1ЕТСr1Ж:1ЗaЗЕТ-n-t•ЕСЕТЕТС•i ЕТСО CСhОOО ЕТЗЕСПOСПCЗ ЕЗr ЕТСЕСП\ • ЕehtЕ ОЕТrС1Ж:1Rb ЗСaЗЕТrПО a! aСht aath tЕТЕТССaЕ ТЕТО1Ж:1СЕПЗЕЕТСЕТЗgЕТПЗЕТ

 

t

u

t

Ч

 

 

 

 

\

 

 

 

 

t

u

 

 

 

 

 

\

 

 

 

 

 

 

t

 

 

0Е Т

 

1 \

\Е Т

 

1

\

 

 

 

 

 

 

0

\

 

 

 

 

t

 

 

0 Е Т

 

ЕТm

 

 

ЕТ

 

t

Е Т o

 

Е Т

ЕТ\

 

 

 

1 П0

 

 

Е\ Т \

94

ЧАСТЬ 1 Основы программирования на С#

 

ГЛАВА 3 Работа со строками

95

 

 

 

1 00 о .обам теnох кормота

л м, мо.орору

ткткту ффП улаВ, маеиyтио м м , мо.ктрои киpоле .отюnо

б,иж

sо реьж1еи реpе .ме

­оэp,

ктема ои .екч иотnои иотлкто иотжлоо. nа

кspа

маСuкти иои юе ро .о-ола иоp spоре nктижл ткткту фгдa буy.еи

м, ме.еnа киpола

ф гaдф a

 

 

 

 

 

еsоnчиnач ­sола тио#лоnкиpул­оч ,ьЭ ПaПв..в t spе.nаВnатеnа .тч

sеpеeмаиа мкеe sоиеь­ оатжь,e о1 обол spо ммо.е

nелоppелиn,e тил

кет у.nало

об lиор pакклаВ, маеикч комкер м .pугои гтамеyа ореnл

ьо k

м

амеby

иктоклтхти иетжn,е оклтхтеnиl

г

 

96

ЧАСТЬ 1 Основы программирования на С#

StringBuilder : эффективная работа со строками

 

t,:9),((),:#('l#

,,1V1((,n

 

9),((),:,

1V1-

(',з,:()'

,,:(),:),(,'ln

,,:.#),(

9),(,:1V1),(- ,',

,'_1V1n

(),s,

 

,,:,),(#.

 

'l

М,'

 

в

_ ',

,: ,s.#

1 1,:,,:()1V1,

, ('1:»_',#

ci),(,:.

М,',,п

9),((),:,'•

,з,s,,s1:»_1V1

9,:-,'((,:.k\

 

'l-,#(,:),(-9,:

(#

,,:.#

п),(',

1:»_),(,:

,,:,

 

 

 

 

 

 

 

 

 

 

 

 

 

,

,

 

,

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

('

9',,:,

,#,#

(#

,,:,з',,,:#),(

 

, яs

p(

9,:-,'#),(

(,:,,s.,,

9),((),:,,s •

9,:9),(',,#((,s.,,

'l-

ci),(1V1n 1:»_'9),(#.

 

s,()'l

ci),(,:, ,:9),('#),(9,: (#'l-,#((,:

.В_ уж(),sМ'l#,:,#()'

1V1'lk\ ,,:),(,:(),#к

,',

,'.#),(9,:п

'l-,#Й,:.,,),(

9),((),:,'l

(',()'l,#()й

т

siПиа

'l,1V1

 

ы@

amRr@В ('

9'h

,,:,

,#,#

,,:9),(

,s,'.,,),(

),(',

.#

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

#-,s,-),('),( ,'.,,:.

 

,:,#()'

'l'l

(',

9),((),:,,:.

,()#,9),(',,,:#),(

9,:,з,:.

,(),sМ,s.,,

9),((),:,,s

t()#,,,:,,:.'l,

 

 

1:»_),(,:

(',,:

9,:#,1V1(1V1),(-

д

9),((),:,

, ,:,(,s ,з,:,-_,s.,,

 

9),((),:,,s

y,

9,:-h

,'#),(#

 

(,:,,s.,,

9),((),:,,s

,()'l

,,:,,:a'l

,(,:.#9),(,'

,,:(,'),(#('

1V1.

 

 

 

 

 

 

Й

 

 

 

 

 

 

 

 

 

ч

 

 

 

 

 

 

 

 

 

 

 

l1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

),(,:,з,

'l-,з#.'),(-

 

),(',,:М,:

,з,:,-_,:М,:

 

,,:,'l1:»_#9),(,'

,,:,'lc1V1,'

1V1.

 

9),((),:,п ,,:9,,:,-r

-,s.),(#9-

,,'99,:,

тiПи а

ииаП@

#-',з,s,-),(#

),(,:,-

,,:,з','l),(-

 

,

('1:»_',#

,'_#М,:

'l9n,:,(,:М,:

 

),(#,9),('

9),((),:,,s

 

 

 

 

 

 

 

 

 

 

 

 

 

ТЕХНИЧЕСКИЕ ПОДРОБНОСТИ

ТЕХИОСТИДХТЕХИСДБТЕХ

ПБ ИК Т

ЧКБЕТ И

ИЕТЕХОТЕХНООСТИДЕБРТЕХД ЕБП

ЕДРЕДКБИКБЕТЕХ

 

Р Р

РР

РР

ЕД ТЕХЧПДЕДДОЧБКРОСТИТЕ

ДЕДДДОСТИЧДЕТЕХНБИТЕХНКТЕХНБ И Б

ИЕТЕХОТЕХОСЕБТИДЕХНОДЧДИЕД ДОСТИЧЕДЕТЕХБ Б

ХТЕХНПБИД РТЕХОСТИ

КДЕДРТЕХН ИЕТЕХОДДТ

Р

абота со строками

жеt

 

 

Можно создать StringBui lder с требуемой вам емкостью, что снизит на­ кладные расходы на частое увеличение емкости для строки:

StringBuilder builder = new StringBuilder (256) ; // 256 символов .

Для добавления текста к концу текущего содержимого используется метод Append ( ) . По завершении работы со строкой метод тostring ( ) предоставит окончательный результат работы. Вот как выглядит StringBuilder-вepcия только что приведенного кода с циклом:

StringBuilder sb =

//

Вьщеление

памяти

new

StringBuilder (20000) ;

for (int

i = О;

i < 1000; i++)

 

 

 

sb. Append (listOfNames [ i ] ) ;

//

Тот же список имен

иодавсж деинлож =

ис танподавс и пtж//

Получение

результата

Класс S t ringBuilder имеет ряд других полезных методов, включая

Insert ( ) , Remove ( ) и Replace ( ) . Но в нем не хватает многих методов string, например Substring ( ) , СоруТо ( ) и IndexOf ( ) .

Предположим, например, что вы хотите перевести в верхний регистр только первый символ строки. При помощи StringBuilder сделать это существенно проще, чем описано в разделе "Преобразование символов строки в символы верхнего или нижнего регистра".

StringBuilder sb = new StringBuilder ( " j ones" ) ; sb [O] = char . ToUpper (sb [O] ) ;

string fixedString = sb . ToString ( ) ;

Здесь строка " j ones " помещается в объект StringBuilder, выполняется обращение к первому символу строки StringBuilder как к sb [ О ] , для его пе­ ревода в верхний регистр используется вызов метода char . ToUpper ( ) , после чего символ в верхнем регистре вновь присваивается sb [ О J • И наконец строка "Jones" получается из StringBuilder при помощи вызова метода ToString ( ) .

Представленный ранее пример BuildASentence может быть улучшен по­ средством применения в нем StringBuilder.

В части 2, "Объектно-ориентированное программирование на С#", рассмат­ ривается функциональная возможность С# - "ъeлH( 4)nс2 4ъE2{о В приве­ денном в ней примере к классу String добавляется несколько удобных мето­ дов, а также описывается, как преобразовывать между собой такие типы, как String, массивы char и массивы byte. Все эти операции могут регулярно тре­ боваться при повседневной работе.

98

ЧАСТЬ 1 eеоеыn, ние rиртт сиеырос о, ор, С#

Соседние файлы в папке Информатика