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 double–slash(\\), 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
7 Comments
Tejo Baskoro
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.. 😀
Putri Chairina
Sepertinya Tejo belum mencobanya ya? Cobalah terlebih dahulu. 🙂
Tejo Baskoro
hhe..iya ..dan ternyata bisa,,hha,,makase kk..
Putri Chairina
Sip!
Tepe
ko saya coba yg replaceAll(” ‘ “, ” ‘ ‘ “) masih ga bisa??
naro stringnya dmn?
Putri Chairina
Lah, string-nya disimpan dalam variable nama. Emang Tepe simpan dimana string-nya? Kalau bisa, sekalian salin code yang Tepe gunakan disini.
Arief Rivai
Good.. Thanks bro..