CodeGym /Java Blog /Acak /Karakter Pelarian Java
John Squirrels
Level 41
San Francisco

Karakter Pelarian Java

Dipublikasikan di grup Acak
Hai! Pada pelajaran sebelumnya, kita sudah mengenal string teks, yang diwakili oleh kelas String di Java. Seperti yang mungkin Anda ingat, string adalah urutan karakter. Karakter ini dapat berupa huruf, angka, tanda baca, dan sebagainya. Hal utama saat membuat string adalah seluruh urutan harus diapit oleh tanda kutip:

public class Main {
   public static void main(String[] args) {
       String alex = new String ("My name is Alex. I'm 20!");
   }
}
Tapi apa yang kita lakukan jika kita perlu membuat string yang harus mengandung tanda kutip? Misalnya, kami ingin memberi tahu dunia tentang buku favorit Anda:

public class Main {
   public static void main(String[] args) {
       String myFavoriteBook = new String ("My favorite book is "Twilight" by Stephanie Meyer");
   }
}
Tampaknya kompiler tidak senang tentang sesuatu! Menurut Anda apa masalahnya? Dan apa hubungannya dengan tanda kutip? Faktanya, semuanya sangat sederhana. Kompiler menginterpretasikan tanda kutip dengan cara yang sangat spesifik, yaitu mengharapkan string dibungkus di dalamnya. Dan setiap kali kompiler melihat ", ia mengharapkan tanda kutip akan diikuti oleh tanda kutip kedua, dan konten di antara mereka adalah teks string yang akan dibuat oleh kompiler. Dalam kasus kami, tanda kutip di sekitar kata "Twilight" ada di dalam tanda kutip lainnya . Ketika kompiler mencapai potongan teks ini, ia sama sekali tidak mengerti apa yang diharapkan dilakukan. Tanda kutip menunjukkan bahwa sebuah string harus dibuat. Tapi itulah kompilernya sudahsedang mengerjakan! Inilah alasannya: secara sederhana, kompiler menjadi bingung tentang apa yang diharapkan dilakukannya. "Tanda kutip lagi? Apakah ini semacam kesalahan? Saya sudah membuat string! Atau haruskah saya membuat yang lain? Argh!...:/" Kita perlu memberi tahu kompiler ketika tanda kutip adalah perintah ( "buat string!") dan jika itu hanyalah sebuah karakter ("tampilkan kata "Twilight" bersama dengan tanda kutip!"). Untuk melakukan ini, Java menggunakan pelolosan karakter . Ini dilakukan dengan menggunakan simbol khusus: \ . Simbol ini biasanya disebut "backslash". Di Jawa, garis miring terbalik yang digabungkan dengan karakter yang akan "diloloskan" disebut urutan kontrol . Misalnya, \"adalah urutan kontrol untuk menampilkan tanda kutip di layar. Setelah menemukan konstruksi ini dalam kode Anda, kompiler akan memahami bahwa ini hanyalah tanda kutip yang harus ditampilkan di layar. Mari coba ubah kode kita dengan buku:

public static void main(String[] args) {
       String myFavoriteBook = new String ("My favorite book is \"Twilight\" by Stephanie Meyer");
       System.out.println(myFavoriteBook);
   }
}
Kami telah menggunakan \ untuk menghindari dua tanda kutip "internal" kami. Mari kita coba menjalankan metode main() ... Keluaran konsol:
My favorite book is "Twilight" by Stephanie Meyer
Bagus sekali! Kode bekerja persis seperti yang kita inginkan! Tanda kutip bukanlah satu-satunya karakter yang mungkin perlu kita hindari. Misalkan kita ingin memberi tahu seseorang tentang pekerjaan kita:

public class Main {
   public static void main(String[] args) {
       String workFiles= new String ("My work files are in D:\Work Projects\java");
       System.out.println(workFiles);
   }
}
Kesalahan lain! Bisakah Anda menebak mengapa? Sekali lagi, kompiler tidak mengerti apa yang harus dilakukan. Lagi pula, kompiler tidak tahu \ sebagai apa pun selain urutan kontrol ! Ia mengharapkan backslash diikuti oleh karakter tertentu yang entah bagaimana harus ditafsirkan dengan cara khusus (seperti tanda kutip). Tapi, dalam hal ini, \ diikuti dengan huruf biasa. Jadi compiler bingung lagi. Apa yang harus kita lakukan? Hal yang persis sama seperti sebelumnya: kita hanya menambahkan \ ke \ !

public class Main {

   public static void main(String[] args) {

       String workFiles= new String ("My work files are in D:\\Work Projects\\java");
       System.out.println(workFiles);

   }
}
Mari kita lihat apa yang kita dapatkan: Keluaran konsol:
My work files are in D:\Work Projects\java
Super! Kompiler segera menentukan bahwa \ adalah karakter biasa yang harus ditampilkan bersama yang lainnya. Java memiliki urutan kontrol yang cukup banyak. Berikut daftar lengkapnya:
  • \t - tab.
  • \b - backspace (langkah mundur dalam teks atau penghapusan satu karakter).
  • \n - baris baru.
  • \r - kereta kembali. ()
  • \f - umpan formulir.
  • \' kutipan tunggal.
  • \" kutipan ganda.
  • \\ garis miring terbalik.
Jadi, jika kompiler menemukan \n dalam teks, ia memahami bahwa ini bukan hanya simbol dan huruf untuk ditampilkan di konsol, melainkan perintah khusus untuk "pindah ke baris baru!". Sebagai contoh, ini mungkin berguna jika kita ingin menampilkan bagian dari sebuah puisi:

public class Main {
   public static void main(String[] args) {
       String byron = new String ("She walks in beauty, like the night, \nOf cloudless climes and starry skies\nAnd all that's best of dark and bright\nMeet in her aspect and her eyes...");
       System.out.println(byron);
   }
}
Inilah yang kami dapatkan: Keluaran konsol:
She walks in beauty, like the night, 
Of cloudless climes and starry skies 
And all that's best of dark and bright 
Meet in her aspect and her eyes...
Apa yang kami inginkan! Penyusun mengenali urutan pelarian dan mengeluarkan kutipan puisi dalam 4 baris.

Melarikan diri dari karakter Unicode

Topik penting lainnya yang perlu Anda ketahui sehubungan dengan karakter pelarian adalah Unicode. Unicode adalah pengkodean karakter standar yang menyertakan simbol dari hampir setiap bahasa tertulis di dunia. Dengan kata lain, ini adalah daftar kode khusus yang mewakili hampir semua karakter dalam bahasa apa pun! Tentu saja, ini adalah daftar yang sangat panjang dan tidak ada yang menghafalnya :) Jika Anda ingin tahu dari mana asalnya dan mengapa itu perlu, baca artikel informatif ini: https://docs.Oracle.com/javase/tutorial/ i18n/text/unicode.html Semua kode karakter Unicode berbentuk " u+<digit heksadesimal>". Misalnya, simbol hak cipta terkenal diwakili oleh u00A9. Jadi, jika Anda perlu menggunakan karakter ini saat bekerja dengan teks di Jawa, Anda dapat menghindarinya di teks Anda! Misalnya, kami ingin untuk memberi tahu semua orang bahwa CodeGym memiliki hak cipta atas pelajaran ini:

public class Main {
   public static void main(String[] args) {
       System.out.println("\"Escaping characters\", \u00A9 2019 CodeGym");
   }
}
Keluaran konsol:
"Escaping characters", © 2019 CodeGym
Hebat, semuanya berhasil! Tapi ini bukan hanya tentang simbol khusus! Anda dapat menggunakan Unicode dan karakter escape untuk menyandikan teks yang ditulis secara bersamaan dalam berbagai bahasa. Dan bahkan teks yang ditulis dalam beberapa dialek berbeda dari bahasa yang sama!

public class Main {
   public static void main(String[] args) {

       System.out.println("\u004d\u0061\u006f \u005a\u0065\u0064\u006f\u006e\u0067 " + 

               "\u0028\u0054\u0072\u0061\u0064\u0069\u0074\u0069\u006f\u006e\u0061\u006c " +

               "\u0043\u0068\u0069\u006e\u0065\u0073\u0065\u003a \u6bdb\u6fa4\u6771\u002c " +

               "\u0053\u0069\u006d\u0070\u006c\u0069\u0066\u0069\u0065\u0064 " +

               "\u0043\u0068\u0069\u006e\u0065\u0073\u0065\u003a \u6bdb\u6cfd\u4e1c\u002c " +

               "\u0050\u0069\u006e\u0079\u0069\u006e\u003a \u004d\u00e1\u006f " +

               "\u005a\u00e9\u0064\u014d\u006e\u0067\u0029 \u0077\u0061\u0073 \u0061 " +

               "\u0032\u0030\u0074\u0068\u002d\u0063\u0065\u006e\u0074\u0075\u0072\u0079 " +

               "\u0043\u0068\u0069\u006e\u0065\u0073\u0065 " +

                "\u0073\u0074\u0061\u0074\u0065\u0073\u006d\u0061\u006e\u002c " +

               "\u0070\u006f\u006c\u0069\u0074\u0069\u0063\u0069\u0061\u006e\u002c " +

               "\u0061\u006e\u0064 \u0074\u0068\u0065 \u0063\u0068\u0069\u0065\u0066 " +

               "\u0074\u0068\u0065\u006f\u0072\u0065\u0074\u0069\u0063\u0069\u0061\u006e " +

               "\u006f\u0066 \u004d\u0061\u006f\u0069\u0073\u006d\u002e");
   }
}
Keluaran konsol:
Mao Zedong (Traditional Chinese: 毛澤東, Simplified Chinese: 毛泽东, Pinyin: Máo Zédōng) was a 20th-century Chinese statesman, politician, and the chief theoretician of Maoism.
Dalam contoh ini, kami menggunakan kode karakter untuk membuat string yang terdiri dari bahasa Inggris dan tiga(!) jenis karakter Tionghoa yang berbeda — tradisional, disederhanakan, dan Latin (Pinyin). Dan itu tentang meringkasnya! Sekarang Anda cukup tahu tentang melarikan diri karakter untuk menggunakan alat hebat ini dalam pekerjaan Anda :) Untuk memperkuat apa yang Anda pelajari, kami sarankan Anda menonton video pelajaran dari Kursus Java kami

Lebih banyak bacaan:

Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION