Latihan - Mengembalikan string dari metode
Anda mungkin sering menemukan bahwa Anda perlu menulis metode yang mengembalikan string. Misalnya, Anda mungkin ingin mengambil string dari sekumpulan data atau memodifikasi string dalam beberapa cara. Dalam latihan ini, Anda akan mendapatkan beberapa pengalaman bekerja dengan string dalam metode sambil mempraktikkan pertanyaan wawancara umum.
Membuat metode yang mengembalikan string
Misalkan Anda adalah kandidat dalam wawancara pengkodian. Pewawancara meminta Anda untuk menulis metode untuk membalikkan string tanpa menggunakan string.Reverse. Luangkan waktu sejenak untuk memikirkan bagaimana Anda dapat menyelesaikan tugas ini.
Anda mungkin telah memutuskan bahwa Anda dapat membalikkan string dengan melakukan iterasi dari akhir string. Anda dapat menggunakan string sementara untuk menyimpan setiap huruf dari ujung ke awal. Mari kita mulai!
Di Editor Visual Studio Code, hapus kode yang ada dari latihan sebelumnya.
Masukkan kode berikut di editor:
string ReverseWord(string word) { string result = ""; return result; }Metode perlu melakukan iterasi melalui kata yang diberikan dan memperbarui hasilnya. Untuk melakukan ini, perbarui
ReverseWordmetode dengan kode berikut:string ReverseWord(string word) { string result = ""; for (int i = word.Length - 1; i >= 0; i--) { result += word[i]; } return result; }Dalam blok kode ini, Anda mulai dari akhir kata menggunakan
word.Length - 1. Anda mengurangi satu dari panjang karena indeks array dimulai dari nol, dan Anda ingin menghindari akses elemen di luar batas. Kemudian Anda menambahkan huruf pada indeks saat ini keresultstring dan memindahkan indeks ke belakang. Anda menggunakani >= 0sejakidiperbarui setelah kode dalam perulangan dijalankan, dan Anda ingin memastikan untuk menyertakan indeks nol.
Menguji kode
Saat mengoding, penting untuk sering memeriksa pekerjaan Anda. Menemukan dan memperbaiki kesalahan di awal proses pengodean memungkinkan Anda menghabiskan lebih banyak waktu untuk membangun kode yang benar daripada men-debug satu program besar. Sering memeriksa pekerjaan Anda adalah keterampilan yang sangat dihargai oleh pewawancara pengkodian.
Masukkan baris kode kosong baru. Kemudian buat beberapa teks input dan panggil metode Anda dengan memasukkan kode berikut di
ReverseWordatas metode :string input = "snake"; Console.WriteLine(input); Console.WriteLine(ReverseWord(input));Jika perlu, buka panel Terminal Terintegrasi Visual Studio Code.
Pada prompt perintah Terminal, masukkan dotnet run. Bandingkan output Anda dengan yang berikut ini:
snake ekansJika kode Anda menampilkan hasil yang tidak terduga, Anda harus meninjau kode untuk menemukan kesalahan Anda dan membuat pembaruan. Jalankan kode lagi untuk melihat apakah Anda telah memperbaiki masalah. Lanjutkan memperbarui dan menjalankan kode Anda hingga kode Anda menghasilkan hasil yang diharapkan.
Membuat metode untuk membalikkan kata dalam kalimat
Misalkan pewawancara Anda mengajukan pertanyaan tindak lanjut. Mereka ingin Anda membalikkan setiap kata dalam kalimat tertentu, mempertahankan posisi asli setiap kata. Anda dapat mengasumsikan setiap kata dipisahkan oleh spasi. Misalnya, "jenis pengembalian string" akan menjadi "gnirts nruter epyt". Luangkan waktu sejenak untuk memikirkan bagaimana Anda dapat melakukan tugas ini.
Jika Anda menggunakan metode yang Anda tulis di tugas sebelumnya, Anda mungkin menyadari bahwa Anda dapat menggunakan metode untuk membalikkan setiap kata dalam string satu per satu. Anda dapat membuat kalimat baru dan menambahkan setiap kata saat dibalik. Mari kita mulai!
Buat baris kode kosong baru di akhir program saat ini. Kemudian masukkan kode berikut untuk membuat metode baru:
string ReverseSentence(string input) { string result = ""; return result; }Selanjutnya, Anda dapat mengekstrak kata-kata individual dari string menggunakan
string.Split.ReverseSentencePerbarui metode ke yang berikut ini:string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); return result; }Sekarang setelah Anda memiliki akses ke setiap kata individual dalam kalimat, Anda dapat menggunakan metode Anda
ReverseWordpada setiap kata dan menyimpannya diresult.ReverseSentencePerbarui metode ke yang berikut ini:string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); foreach(string word in words) { result += ReverseWord(word) + " "; } return result; }Perhatikan bagaimana Anda dapat memanggil metode di
ReverseWorddalam operator penugasan gabungan. Dalam kode ini, nilai pengembalian diambil dariReverseWorddan ditambahkan keresult. Metode dengan nilai pengembalian dapat digunakan di mana saja Anda membutuhkannya, selama jenis data sesuai dengan persyaratan.Dalam kode ini, setiap kata terbalik ditambahkan ke hasil dengan spasi tambahan. Namun, ini menyisakan ruang ekstra di akhir kalimat terbalik.
Anda dapat menghapus ruang tambahan di akhir menggunakan
string.Trim. Perbarui metode ke kode berikut:string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); foreach(string word in words) { result += ReverseWord(word) + " "; } return result.Trim(); }Luangkan waktu sejenak untuk mempertimbangkan hasil pengembalian metode ini. Metode dapat menggunakan metode lain sepanjang eksekusinya dan bahkan dalam pernyataan pengembalian, selama jenis data cocok.
Sekarang Anda siap untuk memanggil metode Anda!
inputPerbarui teks danConsole.WriteLinepernyataan ke yang berikut ini:string input = "there are snakes at the zoo"; Console.WriteLine(input); Console.WriteLine(ReverseSentence(input));
Periksa pekerjaan Anda
Dalam tugas ini, Anda akan menjalankan aplikasi dari Terminal Terpadu dan memverifikasi bahwa kode Anda berfungsi dengan benar. Mari kita mulai.
Bandingkan kode Anda dengan yang berikut ini untuk memastikan kode tersebut benar:
string input = "there are snakes at the zoo"; Console.WriteLine(input); Console.WriteLine(ReverseSentence(input)); string ReverseSentence(string input) { string result = ""; string[] words = input.Split(" "); foreach(string word in words) { result += ReverseWord(word) + " "; } return result.Trim(); } string ReverseWord(string word) { string result = ""; for (int i = word.Length - 1; i >= 0; i--) { result += word[i]; } return result; }Simpan pekerjaan Anda menggunakan Ctrl + S atau menggunakan menu File Visual Studio Code.
Jika perlu, buka panel Terminal Terintegrasi Visual Studio Code.
Di panel EXPLORER, untuk membuka Terminal di lokasi folder TestProject Anda, klik kanan TestProject, lalu pilih Buka di Terminal Terintegrasi.
Pada prompt perintah Terminal, masukkan dotnet run
Verifikasi bahwa kode Anda menghasilkan output berikut:
there are snakes at the zoo ereht era sekans ta eht oozJika kode Anda menampilkan hasil yang berbeda, Anda harus meninjau kode untuk menemukan kesalahan Anda dan membuat pembaruan. Jalankan kode lagi untuk melihat apakah Anda telah memperbaiki masalah. Lanjutkan memperbarui dan menjalankan kode Anda hingga kode Anda menghasilkan hasil yang diharapkan.