Lesson 3-String Handling
Lesson 3-String Handling
Arang
AC# char mewakili satu karakter Unicode dan alias struct System.Char . Dalam pelajaran
sebelumnya, kami menjelaskan bagaimana mengekspresikan char literal. Sebagai contoh:
karakter c = 'A';
char baris baru = '\n';
System.Char mendefinisikan berbagai metode statis untuk bekerja dengan karakter, seperti
ToUpper, ToLower, dan IsWhiteSpace. Anda dapat memanggil ini baik melalui tipe System.Char atau
alias char-nya:
1
Pelajaran 3 [ ADVANCE PROGRAMMING]
Rangkaian
AC# string (== System.String ) adalah urutan karakter yang tidak dapat diubah (tidak dapat diubah).
Dalam pelajaran sebelumnya, kita telah menjelaskan cara mengekspresikan literal string, melakukan
perbandingan kesetaraan, dan menggabungkan dua string. Pelajaran ini mencakup fungsi yang
tersisa untuk bekerja dengan string, yang diekspos melalui anggota statis dan instance dari kelas
System.String .
Cara paling sederhana untuk membuat string adalah dengan menetapkan literal,
string s1 = "Halo";
string s2 = "Baris Pertama\r\nBaris Kedua";
string s3 = @"\\server\fileshare\helloworld.cs";
Kegiatan 1
Bagaimana cara mengakses karakter dalam sebuah string? Tulis cuplikan kode C#.
Mencari String
Metode paling sederhana untuk mencari dalam string adalah Berisi, Mulai Dengan, dan Berakhir
Dengan. Ini semua mengembalikan benar atau salah:
Metode Berisi tidak menawarkan kenyamanan kelebihan ini, meskipun Anda dapat mencapai hasil
yang sama dengan metode IndexOf .
IndexOf lebih kuat: mengembalikan posisi pertama dari karakter atau substring yang diberikan (atau
1 jika substring tidak ditemukan):
Console.WriteLine ("abcde".IndexOf("cd")); // 2
2
Pelajaran 3 [ ADVANCE PROGRAMMING]
Buat program C# yang memungkinkan pengguna memasukkan kalimat dan kemudian memasukkan
kata untuk mencari dalam kalimat. Program akan menampilkan jumlah kata dalam kalimat tersebut.
Contoh.
Masukkan sebuah kalimat: Rubah coklat coklat cepat melompat ke atas
Masukkan kata untuk mencari: coklat
Jumlah kata "coklat": 4
Memanipulasi String
Karena String tidak dapat diubah, semua metode yang "memanipulasi" string mengembalikan yang
baru, membiarkan yang asli tidak tersentuh (hal yang sama berlaku ketika Anda menetapkan kembali
variabel string).
Sisipkan dan Hapus Sisipkan atau hapus karakter pada posisi tertentu:
3
Pelajaran 3 [ ADVANCE PROGRAMMING]
PadLeft dan PadRight pad string dengan panjang tertentu dengan karakter tertentu (atau spasi jika
tidak ditentukan):
Console.WriteLine ("12345".PadLeft (9, '*')); // ****12345
Console.WriteLine ("12345".PadLeft (9)); // 12345
TrimStart dan TrimEnd menghapus karakter tertentu dari awal atau akhir string; Trim melakukan
keduanya. Secara default, fungsi-fungsi ini menghapus karakter spasi putih (termasuk spasi, tab,
baris baru, dan variasi Unicode dari ini):
Ganti menggantikan semua (tidak tumpang tindih) kemunculan karakter atau substring tertentu :
Metode Gabung statis melakukan kebalikan dari Split. Itu membutuhkan pembatas dan array string:
Metode Concat statis mirip dengan Gabung tetapi hanya menerima larik string params dan tidak
menerapkan pemisah. Concat persis sama dengan operator + (kompiler, sebenarnya,
menerjemahkan + ke Concat):
Kegiatan 3
Buat program C# yang akan menggantikan kata “coklat” dalam kalimat “Rubah coklat cepat
melompati anjing malas” menjadi kata “oranye”.
4
Pelajaran 3 [ ADVANCE PROGRAMMING]
Format statis menyediakan cara yang nyaman untuk membangun string yang menyematkan
variabel. Variabel yang disematkan (atau nilai) dapat berupa jenis apa pun; Format hanya memanggil
ToString pada mereka.
String master yang menyertakan variabel yang disematkan disebut format komposit
tali . Saat memanggil String.Format, Anda menyediakan string format komposit yang diikuti oleh
masing-masing variabel yang disematkan. Sebagai contoh:
string composite = "Suhu saat ini {0} derajat dalam {1} pada {2} pagi ini";
string s = string.Format (komposit, 35, "Perth", DateTime.Now.DayOfWeek);
Setiap angka dalam kurung kurawal disebut item format. Angka tersebut sesuai dengan
posisi argumen dan secara opsional diikuti oleh:
Lebar minimum berguna untuk menyelaraskan kolom. Jika nilainya negatif, data rata kiri; jika tidak,
itu rata kanan. Sebagai contoh:
Berikut hasilnya:
Nama = Batas Kredit Mary = $ 500,00
Nama=Batas Kredit Elizabeth= $20,000.00
Kegiatan 4
Tulis cuplikan kode C# yang setara untuk menampilkan hasil di atas tanpa menggunakan format
string .
5
Pelajaran 3 [ ADVANCE PROGRAMMING]
Membandingkan String
Di C#, Anda dapat membandingkan string menggunakan operator persamaan (==) dan
metode .Equal.
kelas BandingkanString
{
publik statis void Utama( string [] args)
{
string kata1;
string kata2;
if (word1.Equals(word2))
{
Console .WriteLine( "Sama dengan" );
}
Kegiatan 5
Buat program C# yang akan menentukan apakah kata yang diberikan adalah palindrom atau bukan.
6
Pelajaran 3 [ ADVANCE PROGRAMMING]
Pembuat Tali
Kelas StringBuilder ( System.Text namespace) mewakili string yang dapat diubah (dapat diedit).
Dengan StringBuilder , Anda dapat Menambahkan , Menyisipkan , Menghapus , dan Mengganti
substring tanpa mengganti seluruh StringBuilder .
StringBuilder adalah kelas C# yang dapat digunakan untuk menyimpan dan memanipulasi tipe data
string, yang ketika dimodifikasi mengembalikan objek StringBuilder yang sama dengan nilai yang
dimodifikasi daripada mengembalikan objek baru. Contoh di bawah ini mewakili perbedaan antara
Kelas String dan StringBuilder .
kelas StringBuilderEx1
{
publik statis batal Utama()
{
isi string = "abcd" ;
konten = konten + "wxyz" ;
Konsol .WriteLine(konten);
Konsol .WriteLine(content2);
Konsol .ReadKey();
}
}
Dalam contoh, konten string yang dipakai tidak menyimpan nilai literal string dari " abcd " dan
variabel ini menunjuk ke objek tipe string di ruang memori. Di baris kode berikutnya, string literal
lain " wxyz " ditambahkan ke string. Apa yang terjadi adalah bahwa alih-alih memodifikasi objek yang
berisi " abcd " objek baru dipakai dalam memori dan variabel konten dibuat untuk merujuk ke objek
baru ini.
Sebaliknya, dalam contoh di atas, objek StringBuilder bernama content2 dipakai dan diberi nilai
string “ abcd ”. Selanjutnya, metode Append dipanggil pada variabel content2 dan nilai string “ wxyz
” dilewatkan. Ini menambahkan " wxyz " di akhir konten objek StringBuilder2 . Tetapi dalam kasus
ini, objek baru tidak dibuat di memori; melainkan, objek yang berisi nilai " abcd " dibuat untuk
mengakomodasi string " wxyz " yang ditambahkan.
Kegiatan 6
7
Pelajaran 3 [ ADVANCE PROGRAMMING]
Fungsi StringBuilder
Metode AppendLine
Metode append line digunakan untuk menyisipkan baris baru ke dalam String.
kelas StringBuilderAppendLine
{
publik statis batal Utama()
{
StringBuilder sb = baru StringBuilder ( "Contoh AppendLine" );
sb.AppendLine( "Menyenangkan" );
Konsol .WriteLine(sb);
Konsol .ReadKey();
}
}
Hapus metode
kelas StringBuilderAppendLine
{
publik statis batal Utama()
{
StringBuilder sb = baru StringBuilder ( "Contoh AppendLine" );
sb.AppendLine( "Menyenangkan" );
Konsol .WriteLine(sb);
sb.Hapus (0,7);
Konsol .WriteLine(sb);
Konsol .ReadKey();
}
}
Ganti metode
8
Pelajaran 3 [ ADVANCE PROGRAMMING]
Masukkan metode
Kegiatan 7
Buat program C# yang akan menambahkan StringBuilder dengan nilai dari 1-50 dan setiap nilai
dipisahkan dengan koma. Lihat Contoh keluaran di bawah.
Rentang waktu
TimeSpan mewakili interval waktu—atau waktu dalam sehari. Dalam peran terakhir, ini hanyalah
waktu "jam" (tanpa tanggal), yang setara dengan waktu sejak tengah malam dengan asumsi tidak
ada transisi musim panas. TimeSpan memiliki resolusi 100 ns, memiliki nilai maksimum sekitar 10
juta hari, dan bisa positif atau negatif.
9
Pelajaran 3 [ ADVANCE PROGRAMMING]
Dari ... statis lebih nyaman bila Anda ingin menentukan interval hanya dalam satu unit, seperti
menit, jam, dan seterusnya:
TimeSpan FromDays statis publik (nilai ganda);
TimeSpan FromHours statis publik (nilai ganda);
TimeSpan FromMinutes statis publik (nilai ganda);
TimeSpan FromSeconds statis publik (nilai ganda);
TimeSpan FromMilliseconds statis publik (nilai ganda);
Contoh:
Konsol .WriteLine ( baru Rentang Waktu (2, 30, 0)); // 02:30:00
Konsol .WriteLine ( TimeSpan .FromHours (2.5)); // 02:30:00
Konsol .WriteLine ( TimeSpan .FromHours (-2.5)); // 02:30:00
TimeSpan membebani operator < dan >, serta operator + dan -. Ekspresi berikut mengevaluasi ke
TimeSpan 2,5 jam:
// 9.23:59:59)
Dengan menggunakan ekspresi ini, kita dapat mengilustrasikan properti integer Days , Hours , Minutes , Seconds , dan
Milliseconds:
Sebaliknya, properti Total... mengembalikan nilai tipe double yang menjelaskan seluruh rentang waktu:
Contoh:
10
Pelajaran 3 [ ADVANCE PROGRAMMING]
Catatan: Contoh-contoh yang diberikan dalam pelajaran ini hanyalah dasar atau umum. Masih ada
banyak operasi atau cara untuk menggunakan DateTime dan DateTimeOffSet yang tidak dapat
diubah. Silakan jelajahi.
Ini terdiri dari satu huruf, diikuti secara opsional oleh angka. Contohnya adalah "C" atau "F2"
ganda = 34.2343;
//batas hingga 2 tempat desimal
Console .WriteLine( "Angkanya adalah: {0}" , number.ToString( "F2" ));
//dengan format mata uang (secara default akan menempatkan tanda $)
Console .WriteLine( "Angkanya adalah: {0}" , number.ToString( "C2" ));
11
Pelajaran 3 [ ADVANCE PROGRAMMING]
S
t
r
i
n
g
Format Kustom
12
Pelajaran 3 [ ADVANCE PROGRAMMING]
13
Pelajaran 3 [ ADVANCE PROGRAMMING]
Struktur GUID
Panduan _ struct mewakili pengidentifikasi unik global: nilai 16-byte yang, ketika dihasilkan, hampir
pasti unik di dunia. Pemandu sering digunakan untuk berbagai macam kunci—dalam aplikasi dan
database. Ada 2128 atau 3,4 × 1038 Guid unik .
Saat direpresentasikan sebagai string, Panduan diformat sebagai angka heksadesimal 32 digit,
dengan tanda hubung opsional setelah digit ke-8, ke-12, ke-16, dan ke-20. Seluruh string juga dapat
secara opsional dibungkus dengan tanda kurung atau kurung:
Kegiatan 8
Di mana GUID biasa digunakan? Buktikan jawaban Anda dengan memberikan contoh.
Nilai Kesetaraan
int = 10;
int b = 10;
Konsol .WriteLine(a == b); //Benar berdasarkan prinsip kesetaraan
14
Pelajaran 3 [ ADVANCE PROGRAMMING]
Persamaan Referensial
Kegiatan 9
Apa perbedaan antara Pernyataan 1 dan Pernyataan 2? Pernyataan manakah yang merupakan
contoh persamaan referensial?
Pernyataan 1:
Pernyataan 2:
Contoh a1 = baru Contoh () {X =5};
Contoh a2 = baru Contoh () { X = 5 };
a1 = a2;
Konsol .WriteLine(a1 == a2);
benda x = 5;
objek y = 5;
Kegiatan 10
15
Pelajaran 3 [ ADVANCE PROGRAMMING]
Ekspresi Reguler s
SEBUAH ekspresi reguler adalah pola yang dapat dicocokkan dengan teks input. Kerangka .Net
menyediakan mesin ekspresi reguler yang memungkinkan pencocokan tersebut. Pola terdiri dari
satu atau lebih karakter literal, operator, atau konstruksi.
Contoh2: Mencocokkan Kata yang dimulai dengan “m” dan diakhiri dengan “e”
16
Pelajaran 3 [ ADVANCE PROGRAMMING]
Contoh 3: Identifikasi posisi kata-kata dalam kalimat yang diakhiri dengan " es "
Contoh4: Menggantikan lima kemunculan karakter duplikat pertama dengan satu karakter
Pola ekspresi reguler (\w)\1 cocok dengan kemunculan berurutan dari satu karakter dan
menetapkan kemunculan pertama ke grup penangkapan pertama. Pola penggantian $1
menggantikan seluruh kecocokan dengan grup pertama yang ditangkap.
17
Pelajaran 3 [ ADVANCE PROGRAMMING]
Kegiatan 11
Buat aplikasi C# berbasis windows yang akan mengidentifikasi apakah input adalah email atau bukan
email.
18
Pelajaran 3 [ ADVANCE PROGRAMMING]
\n Cocok dengan baris baru, \u000A. \r\n(\w+) "\r\ nHalo " di "\r\
Halo\ nDunia ."
\ nnn Menggunakan representasi oktal \w\040\w " a b", "c d" dalam "a
untuk menentukan karakter ( nnn bc d"
terdiri dari hingga tiga digit).
\u nnnn Mencocokkan karakter Unicode \w\u0020\w " a b", "c d" dalam "a
dengan menggunakan representasi
19
Pelajaran 3 [ ADVANCE PROGRAMMING]
\ Jika diikuti oleh karakter yang tidak \d+[\+-x\*]\d+\ "2+2" dan "3*9"
dikenali sebagai karakter yang lolos, d+[\+-x\*\d+ dalam "(2+2) * 3*9"
cocok dengan karakter tersebut.
Kelas Karakter
Pertanding
Kelas karakter Keterangan Pola
an
\P{ nama } Mencocokkan karakter tunggal \P{Lu} " i ", "t", "y"
apa pun yang tidak termasuk di "Kota"
dalam kategori umum Unicode
atau blok bernama yang
ditentukan oleh nama .
20
Pelajaran 3 [ ADVANCE PROGRAMMING]
21
Pelajaran 3 [ ADVANCE PROGRAMMING]
bertahan"
Pengelompokan Konstruksi
Mengelompokka Keterangan Pola Pertandingan
n konstruksi
(?< nama > Menangkap (?< ganda>\w)\k< " ee " dalam "
subekspresi ) subekspresi ganda> dalam "
yang cocok ke
dalam grup
bernama.
22
Pelajaran 3 [ ADVANCE PROGRAMMING]
Pembilang
Pembilan Keterangan Pola Pertandingan
g
23
Pelajaran 3 [ ADVANCE PROGRAMMING]
lebih.
24
Pelajaran 3 [ ADVANCE PROGRAMMING]
Konstruksi Alternatif
Konstruksi Keterangan Pola Pertandingan
alternatif
| Mencocokkan salah satu elemen yang th ( e|adalah|pada ) " itu ", "ini" dalam
dipisahkan oleh karakter batang "inilah harinya."
vertikal (|).
(?(nama)ya | Cocok ya jika nama tangkapan yang (?< dikutip>")?(?(dikutip).+?"|\ Dogs.jpg, " Yiska
tidak) disebutkan memiliki kecocokan; jika S+\s) playing.jpg" dalam
tidak, cocok dengan opsional no . "Dogs.jpg " Yiska
playing.jpg""
25