Alternatif Escape Character dalam Java (replaceAll)

Beberapa hari yang lalu saya terbentur masalah untuk dapat “meloloskan” character satu-petik (‘) dalam String yang akan dimasukkan ke dalam database mySQL.

Ada beberapa cara yang memungkinkan. Mulai dari parsing per-character hingga utak-atik mySQL. Ribet. Di C ada mysql_real_escape_string(String). Di Javascript ada escape(String). Nah, pasti di Java juga ada solusinya dong!

Browsing.. Browsing.. Eh, saya menemukan method ini di Java : replaceAll(). Ini adalah method dari kelas String. Singkatnya, kita bisa mengubah character tertentu menjadi character lain dalam satu String.

Langsung ke contoh ya. Misalnya saya mau “meloloskan” kalimat : Hasyim Asy’ari (ada satu petik setelah Asy). Caranya dengan mengubah satu-petik(‘) menjadi dua-petik(‘ ‘). Dua-petik, petik yang pertama berfungsi untuk memberitahu mySQL bahwa petik yang selanjutnya itu adalah character yang perlu dibaca, bukan penanda awal/akhir character. Ini code-nya :

[sourcecode language=”Java”]

String nama = "Hasyim Asy’ari";

nama.replaceAll(" ‘ ", " ” ");

[/sourcecode]

Atau misalkan ingin mengubah seluruh character slash (\) menjadi doubleslash(\\), cukup dengan :

[sourcecode language=”Java”]

nama.replaceAll("\\\\", "\\\\\\\\");

[/sourcecode]

Kesimpulannya :

[sourcecode language=”Java”]

nama.replaceAll(characterYangInginDiganti, characterPenggantinya);

[/sourcecode]

Sederhana.

Semoga bermanfaat. 🙂

Terakhir diubah : 23 Desember 2009

0 Replies to “Alternatif Escape Character dalam Java (replaceAll)”

  1. kk numpang nanya ya?? ganti jadi \ kok replace allnya tanda nya jadi banyak banget?aq pengen nyimpen alamat direktori dari java ke mysql pake file.getPath() tanda nya ga kebaca.. 😀

    1. Sepertinya Tejo belum mencobanya ya? Cobalah terlebih dahulu. 🙂

  2. hhe..iya ..dan ternyata bisa,,hha,,makase kk..

  3. ko saya coba yg replaceAll(” ‘ “, ” ‘ ‘ “) masih ga bisa??
    naro stringnya dmn?

    1. Lah, string-nya disimpan dalam variable nama. Emang Tepe simpan dimana string-nya? Kalau bisa, sekalian salin code yang Tepe gunakan disini.

Leave a Reply