Hapus Tanda Baca Dari String di Java

Selama pemrosesan tekstual, apakah Anda sedang mencari kata-kata tertentu dan membuat aturan pencocokan pola, menghitung frekuensi elemen, dll. โ€“ tanda baca dapat mengacaukan rencana Anda.

Seringkali, Anda ingin menghapus stopword, tanda baca, angka, atau lainnya beberapa kategori karakter, tergantung pada tujuan akhir Anda.

Dalam tutorial singkat ini, kita akan melihat cara menghapus tanda baca dari string di Java.

Hapus Tanda Baca dari String dengan RegEx (Ekspresi Reguler)

Ekspresi Reguler sangat cocok di sini, baik karena kemungkinan besar akan menjadi bagian dari bagian pemrosesan lainnya, dan karena mereka adalah pencocokan pola yang efisien! Di Jawa, ekspresi reguler untuk mencocokkan tanda baca adalah p{Punct} atau singkatan p{P}.

Anda harus menghindari garis miring terbalik pertama dalam sebuah string, jadi menghapus semua tanda baca sama dengan mencocokkannya dan menggantinya dengan karakter kosong:

String.replaceAll("p{P}", "")

Mari kita terapkan pada kalimat sederhana:

String text = "Hi! This is, in effect, a synthetic sentence. It's meant to have several punctuation characters!";
String clean = text.replaceAll("p{P}", "");
System.out.println(clean);

Ini menghasilkan:

Hi This is in effect a synthetic sentence Its meant to have several punctuation characters

Mari kita lihat karakter apa yang diperlakukan sebagai tanda baca di sini:

String text = "!#$%&'()*+,-./:;[email protected][]^_`{|}~";
String clean = text.replaceAll("p{P}", "");
System.out.println(clean);

Dengan karakter khusus ini โ€“ yang tersisa setelah menghapus tanda baca?

$+^`|~

Hapus Tanda Baca dari String tanpa RegEx

Jika Anda tidak ingin menggunakan ekspresi reguler, Anda dapat melakukan pemeriksaan manual saat mengulangi setiap karakter string. Ingatlah untuk menggunakan StringBuffer bukannya a String saat melakukan ini, karena string tidak dapat diubah dan salinan harus dibuat setiap kali Anda ingin menambahkan karakter โ€“ jadi Anda akan membuat string.length jumlah string dalam memori.

StringBuffer dapat diubah, dan dapat dengan mudah diubah menjadi string yang tidak dapat diubah di akhir proses:

Lihat panduan praktis dan praktis kami untuk mempelajari Git, dengan praktik terbaik, standar yang diterima industri, dan termasuk lembar contekan. Hentikan perintah Googling Git dan sebenarnya belajar itu!

public static String removePunctuations(String s) {
    StringBuffer buffer = new StringBuffer();
    for (Character c : s.toCharArray()) {
        if(Character.isLetterOrDigit(c))
            buffer.append(c);
    }
    return buffer.toString();
}

Mari buat string dan bersihkan:

String text = "Hello! nHere are some special characters: !#$%&'()*+,-./:;[email protected][]^_`{|}~ nWhere are they? :(n";
System.out.println(text);
String clean = removePunctuations(text);
System.out.println(clean);
Hello! 
Here are some special characters: !#$%&'()*+,-./:;[email protected][]^_`{|}~ 
Where are they? :(

HelloHerearesomespecialcharactersWherearethey

Meskipun proses ini lebih dapat disesuaikan, proses ini hanya memeriksa huruf dan angka. Anda dapat memeriksa kode karakter secara manual sebagai alternatif, dan hanya mengecualikan beberapa karakter tanda baca saja โ€“ dan membiarkan spasi putih, jeda baris, dll.

Kesimpulan

Dalam tutorial singkat ini, kami melihat bagaimana Anda dapat menghapus tanda baca atau karakter khusus tertentu dari string di Java, menggunakan ekspresi reguler atau pemeriksaan manual dalam for Loop.

Stempel Waktu:

Lebih dari penyalahgunaan