Latihan - Menyelidiki dasar-dasar pemformatan string
- 20 menit
Dalam unit ini, Anda mempelajari metode untuk memformat string untuk tampilan yang efisien, terutama untuk kasus yang menggunakan beberapa variabel.
Menyiapkan lingkungan pengodian Anda
Modul ini mencakup aktivitas langsung yang memandu Anda melalui proses membangun dan menjalankan kode demonstrasi. Anda dianjurkan untuk menyelesaikan aktivitas ini menggunakan Visual Studio Code sebagai lingkungan pengembangan Anda. Menggunakan Visual Studio Code untuk aktivitas ini membantu Anda menjadi lebih nyaman menulis dan menjalankan kode di lingkungan pengembang yang digunakan oleh para profesional di seluruh dunia.
Catatan
Jika Anda telah menyelesaikan modul Microsoft Learn lainnya dalam seri C# ini, Anda mungkin telah membuat folder proyek untuk sampel kode. Jika demikian, Anda dapat melewati bagian langkah-langkah berikut, dan menghapus kode dalam file yang Project.cs digunakan untuk latihan sebelumnya.
Buka Visual Studio Code. Anda dapat menggunakan Windows menu Mulai (atau sumber daya yang setara untuk OS lain) untuk membuka Visual Studio Code.
Pada menu File Visual Studio Code, pilih Buka Folder.
Dalam dialog Buka Folder, navigasikan ke folder Windows Desktop. Jika Anda memiliki lokasi folder yang berbeda di mana Anda menyimpan proyek kode, Anda dapat menggunakan lokasi folder tersebut sebagai gantinya. Untuk pelatihan ini, yang penting adalah memiliki lokasi yang mudah ditemukan dan diingat.
Dalam dialog Buka Folder, pilih Pilih Folder. Jika Anda melihat dialog keamanan yang menanyakan apakah Anda mempercayai penulis, pilih Ya.
Pada menu Terminal Visual Studio Code, pilih Terminal Baru. Perhatikan bahwa perintah di panel Terminal menampilkan jalur folder untuk folder saat ini. Contohnya:
C:\Users\someuser\Desktop>Pada prompt perintah Terminal, untuk membuat aplikasi konsol baru di folder tertentu, ketik dotnet konsol baru -o ./CsharpProjects/TestProject lalu tekan Enter. Perintah .NET CLI ini menggunakan templat program .NET untuk membuat proyek aplikasi konsol C# baru di lokasi folder yang ditentukan. Perintah membuat folder CsharpProjects dan TestProject untuk Anda, dan menggunakan TestProject sebagai nama
.csprojfile.Di panel EXPLORER, perluas folder CsharpProjects . Anda akan melihat folder TestProject dan dua file, file program C# bernama Program.cs dan file proyek C# bernama TestProject.csproj.
Di panel EXPLORER, untuk melihat file kode Anda di panel Editor, pilih Program.cs.
Hapus baris kode yang ada. Anda menggunakan proyek konsol C# ini untuk membuat, membangun, dan menjalankan sampel kode selama modul ini.
Tutup panel Terminal.
Apa yang dimaksud dengan Pemformatan Komposit?
Pemformatan komposit menggunakan tempat penampung bernomor dalam string. Pada run time, semua yang ada di dalam kurung kurawal diselesaikan ke nilai yang juga diteruskan berdasarkan posisinya.
Contoh pemformatan komposit ini menggunakan metode Format() bawaan pada string kata kunci jenis data. Perbarui kode Anda di Editor Visual Studio Code sebagai berikut:
string first = "Hello";
string second = "World";
string result = string.Format("{0} {1}!", first, second);
Console.WriteLine(result);
Jika Anda menjalankan kode ini, Anda mengamati output berikut.
Hello World!
Ada beberapa hal penting yang perlu diperhatikan tentang kode ini.
- Jenis data dan variabel dari jenis data tertentu memiliki "metode pembantu" bawaan untuk memudahkan tugas tertentu.
- String
"{0} {1}!"harfiah membentuk templat, bagian yang diganti pada waktu proses. - Token
{0}diganti dengan argumen pertama setelah templat string, dengan kata lain, nilai variabelfirst. - Token
{1}diganti dengan argumen kedua setelah templat string, dengan kata lain, nilai variabelsecond.
Catatan
Anda mungkin berpikir bahwa aneh untuk memulai dengan angka 0. Sebenarnya ini sangat umum dalam pengembangan perangkat lunak. Setiap kali ada urutan item yang dapat diidentifikasi menggunakan angka, penomoran biasanya akan dimulai dari 0.
Perbarui kode Anda sebagai berikut:
string first = "Hello"; string second = "World"; Console.WriteLine("{1} {0}!", first, second); Console.WriteLine("{0} {0} {0}!", first, second);Simpan file kode Anda, lalu gunakan Visual Studio Code untuk menjalankan kode Anda. Anda akan menemukan output berikut:
World Hello! Hello Hello Hello!
Beberapa pengamatan tentang contoh-contoh ini:
- Untuk pernyataan pertama
Console.WriteLine(), amati bahwa token dapat diatur dalam urutan apa pun. Kode sampel memiliki{1}sebelum{0}. - Untuk pernyataan kedua
Console.WriteLine(), amati bahwa token dapat digunakan kembali dengan tiga instans{0}. Selain itu, argumen variabel kedua,second, tidak digunakan. Namun, kode masih berjalan tanpa kesalahan.
Apa itu interpolasi string?
Interpolasi string adalah teknik yang menyederhanakan pemformatan komposit.
Alih-alih menggunakan token bernomor dan menyertakan nilai harfiah atau nama variabel dalam daftar argumen ke String.Format() atau Console.WriteLine(), Anda hanya dapat menggunakan nama variabel di dalam kurung kurawal.
Agar string diinterpolasi, Anda harus mengawalinya dengan direktif
$. Sekarang, buat contoh yang sama dari sebelumnya menggunakan interpolasi string alih-alih pemformatan komposit. Perbarui kode Anda sebagai berikut:string first = "Hello"; string second = "World"; Console.WriteLine($"{first} {second}!"); Console.WriteLine($"{second} {first}!"); Console.WriteLine($"{first} {first} {first}!");Simpan file kode Anda, lalu gunakan Visual Studio Code untuk menjalankan kode Anda. Anda akan menemukan output berikut:
Hello World! World Hello! Hello Hello Hello!
Catatan
Jika Anda melihat contoh kode dalam buku dan online, Anda mungkin melihat pemformatan komposit dan interpolasi string yang digunakan, tetapi umumnya Anda harus memilih interpolasi string.
Memformat mata uang
Pemformatan komposit dan interpolasi string dapat digunakan untuk memformat nilai untuk tampilan yang diberikan bahasa dan budaya tertentu. Dalam contoh berikut, penentu format mata uang :C digunakan untuk menampilkan variabel price dan discount sebagai mata uang. Perbarui kode Anda sebagai berikut:
decimal price = 123.45m;
int discount = 50;
Console.WriteLine($"Price: {price:C} (Save {discount:C})");
Jika Anda menjalankan kode ini di komputer yang memiliki bahasa tampilan Windows yang diatur ke "Bahasa Inggris (Amerika Serikat)", Anda mengamati output berikut.
Price: $123.45 (Save $50.00)
Perhatikan bagaimana menambahkan :C ke token di dalam kurung kurawal memformat angka sebagai mata uang terlepas dari apakah Anda menggunakan int atau decimal.
Catatan
Apa yang terjadi jika negara/wilayah dan bahasa Anda tidak diketahui? Jika Anda menjalankan kode sebelumnya di Editor .NET "di browser", seperti di TrydotNet , Anda akan melihat output berikut: Price: ¤123.45 (Save ¤50.00). Simbol ¤ digunakan alih-alih simbol untuk uang negara/wilayah Anda. Ini adalah simbol generik yang digunakan untuk menunjukkan "mata uang" terlepas dari jenis mata uang. Anda melihat simbol ini di Editor .NET karena mengabaikan lokasi Anda saat ini.
Bagaimana negara/wilayah dan bahasa pengguna memengaruhi pemformatan string
Bagaimana jika Anda menjalankan kode sebelumnya pada komputer di Prancis yang memiliki Windows Display Language yang diatur ke Bahasa Prancis? Dalam hal ini Anda akan melihat output berikut.
Price: 123,45 € (Save 50,00 €)
Alasan output "€" sebelumnya adalah bahwa fitur pemformatan mata uang string tergantung pada pengaturan komputer lokal untuk budaya. Dalam konteks ini, istilah "budaya" mengacu pada negara/wilayah dan bahasa pengguna akhir. Kode budaya adalah string lima karakter yang digunakan komputer untuk mengidentifikasi lokasi dan bahasa pengguna akhir. Kode budaya memastikan informasi tertentu seperti tanggal dan mata uang dapat disajikan dengan benar.
Contohnya:
- kode budaya penutur bahasa Inggris di AS adalah
en-US. - kode budaya pembicara Prancis di Prancis adalah
fr-FR. - kode budaya pembicara Prancis di Kanada adalah
fr-CA.
Budaya mempengaruhi sistem penulisan, kalender yang digunakan, urutan pengurutan string, dan pemformatan untuk tanggal dan angka (seperti memformat mata uang).
Sayangnya, pastikan kode Anda berfungsi dengan benar di semua komputer terlepas dari negara/wilayah atau bahasa pengguna akhir sangat menantang. Proses ini dikenal sebagai pelokalan (atau globalisasi). Pelokalan tergantung pada banyak faktor yang tidak dibahas dalam modul ini, tetapi sederhananya, sintaks pemformatan string mungkin menggunakan format yang berbeda tergantung pada budaya pengguna.
Memformat angka
Saat bekerja dengan data numerik, Anda mungkin ingin memformat angka untuk keterbacaan dengan menyertakan koma untuk menguraikan ribuan, jutaan, miliaran, dan sebagainya.
Penentu N format numerik membuat angka lebih mudah dibaca. Perbarui kode Anda sebagai berikut:
decimal measurement = 123456.78912m;
Console.WriteLine($"Measurement: {measurement:N} units");
Jika Anda melihat ini dari en-US budaya, Anda mengamati output berikut.
Measurement: 123,456.79 units
Secara default, penentu format numerik N hanya menampilkan dua digit setelah titik desimal.
Jika Anda ingin menampilkan lebih banyak presisi, Anda dapat melakukannya dengan menambahkan angka setelah penentu. Kode berikut akan menampilkan empat digit setelah titik desimal menggunakan penentu N4. Perbarui kode Anda sebagai berikut:
decimal measurement = 123456.78912m;
Console.WriteLine($"Measurement: {measurement:N4} units");
Jika Anda melihat ini dari en-US budaya, Anda mengamati output berikut.
Measurement: 123,456.7891 units
Persentase pemformatan
Gunakan penentu P format untuk memformat persentase dan putaran ke 2 tempat desimal. Tambahkan angka setelahnya untuk mengontrol jumlah nilai yang ditampilkan setelah titik desimal. Perbarui kode Anda sebagai berikut:
decimal tax = .36785m;
Console.WriteLine($"Tax rate: {tax:P2}");
Jika Anda melihat ini dari en-US budaya, Anda mengamati output berikut.
Tax rate: 36.79%
Menggabungkan pendekatan pemformatan
Variabel string dapat menyimpan string yang dibuat menggunakan teknik pemformatan. Dalam contoh berikut, desimal dan hasil matematika desimal diformat dan disimpan dalam yourDiscount string menggunakan pemformatan komposit.
Perbarui kode Anda sebagai berikut.
decimal price = 67.55m;
decimal salePrice = 59.99m;
string yourDiscount = String.Format("You saved {0:C2} off the regular {1:C2} price. ", (price - salePrice), price);
Console.WriteLine(yourDiscount);
Jika Anda melihat ini dari en-US budaya, Anda mengamati output berikut.
You saved $7.56 off the regular $67.55 price.
Anda dapat menggabungkan beberapa string yang diformat. Bangun pada kode sebelumnya yang menggabungkan persentase terhitung menggunakan interpolasi string alih-alih perangkaian string dengan menyisipkan yourDiscount += $"A discount of {(price - salePrice)/price:P2}!"; ke dalam kode pada baris sebelum Console.WriteLine().
Catatan
Anda tidak perlu menggunakan String.Format() dengan pendekatan interpolasi string ini.
Perbarui kode Anda sebagai berikut.
decimal price = 67.55m;
decimal salePrice = 59.99m;
string yourDiscount = String.Format("You saved {0:C2} off the regular {1:C2} price. ", (price - salePrice), price);
yourDiscount += $"A discount of {((price - salePrice)/price):P2}!"; //inserted
Console.WriteLine(yourDiscount);
Jika Anda melihat unit ini dari en-US budaya, Anda mengamati output berikut.
You saved $7.56 off the regular $67.55 price. A discount of 11.19%!
Rekap
Berikut adalah takeaways paling penting dari unit ini tentang pemformatan string:
- Anda dapat menggunakan pemformatan komposit atau interpolasi string untuk memformat string.
- Dengan pemformatan gabungan, Anda menggunakan kerangka string yang berisi satu atau beberapa token pengganti dalam bentuk
{0}. Anda juga menyediakan daftar argumen yang cocok dengan token pengganti berdasarkan urutannya. Pemformatan komposit berfungsi saat menggunakanstring.Format()atauConsole.WriteLine(). - Dengan interpolasi string, Anda menggunakan templat string yang berisi nama variabel yang ingin Anda ganti dikelilingi oleh kurung kurawal. Gunakan arahan
$sebelum templat string untuk menunjukkan bahwa Anda ingin string diinterpolasi. - Format mata uang menggunakan penentu
:C. - Format angka menggunakan penentu
:N. Kontrol presisi (jumlah nilai setelah titik desimal) menggunakan angka setelah:Nseperti{myNumber:N3}. - Format persentase menggunakan penentu
:Pformat. - Memformat mata uang dan angka bergantung pada budaya pengguna akhir, kode lima karakter yang menyertakan negara/wilayah dan bahasa pengguna (sesuai pengaturan di komputer mereka).
Uji pengetahuan Anda
Saran dan Komentar
Apakah halaman ini membantu?
Tidak
Perlu bantuan dengan topik ini?
Ingin mencoba menggunakan Ask Learn untuk mengklarifikasi atau memandu Anda melalui topik ini?