Írásjelek eltávolítása egy karakterláncból Java nyelven

Szövegfeldolgozás során, akár bizonyos szavakat keresel és mintaillesztési szabályokat készítesz, az elemek gyakoriságát számolod stb. – az írásjelek csavarkulcsot dobhatnak a tervein.

Gyakran előfordul, hogy el szeretné távolítani a stopszavakat, írásjeleket, számjegyeket vagy másokat néhány karakterek kategóriája, attól függően, hogy mi a végső célod.

Ebben a rövid oktatóanyagban megnézzük, hogyan lehet eltávolítani az írásjeleket egy karakterláncból Java nyelven.

Írásjelek eltávolítása a karakterláncból reguláris kifejezéssel (reguláris kifejezések)

A reguláris kifejezések nagyon természetesek itt, mert valószínűleg más feldolgozási részek részét képezik, és mert hatékony mintaegyeztetők! A Java nyelvben az írásjelek illesztésének reguláris kifejezése a p{Punct} vagy egy gyorsírás p{P}.

A karakterlánc első fordított törtjelét meg kell szöknie, így az írásjelek eltávolítása megegyezik a megfeleltetéssel és egy üres karakterrel való helyettesítéssel:

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

Alkalmazzuk egy egyszerű mondatra:

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);

Ennek eredményeként:

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

Nézzük meg, milyen karaktereket kezelünk írásjelként:

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

Ezekkel a speciális karakterekkel – melyek maradnak meg az írásjelek eltávolítása után?

$+^`|~

Távolítsa el az írásjeleket a reguláris kifejezés nélküli karakterláncból

Ha nem szeretne reguláris kifejezéseket alkalmazni, akkor manuálisan ellenőrizheti a karakterlánc minden karakterét. Ne felejtse el használni a StringBuffer helyett a String miközben ezt teszi, mivel a karakterláncok megváltoztathatatlanok, és minden alkalommal másolatot kell készíteni, amikor karaktert akarunk hozzáadni – tehát string.length a memóriában lévő karakterláncok száma.

StringBuffer változtatható, és a folyamat végén könnyen változtathatatlan karakterláncokká alakítható:

Tekintse meg gyakorlatias, gyakorlati útmutatónkat a Git tanulásához, amely tartalmazza a bevált gyakorlatokat, az iparág által elfogadott szabványokat és a mellékelt csalólapot. Hagyd abba a guglizást a Git parancsokkal, és valójában tanulni meg!

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();
}

Hozzon létre egy karakterláncot, és tisztítsa meg:

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

Bár ez a folyamat jobban testreszabható, csak a betűket és a számjegyeket ellenőrzi. Alternatív megoldásként manuálisan is ellenőrizheti a karakterkódokat, és csak néhány írásjelet hagyhat ki helyette – és hagyja el a szóközöket, sortöréseket stb.

Következtetés

Ebben a rövid oktatóanyagban megvizsgáltuk, hogyan távolíthat el írásjeleket vagy bizonyos speciális karaktereket egy karakterláncból Java nyelven, reguláris kifejezések vagy kézi ellenőrzés segítségével. for hurok.

Időbélyeg:

Még több Stackabus