Poista välimerkit merkkijonosta Javassa

Tekstinkäsittelyn aikana, etsitpä tiettyjä sanoja ja luot kuvioiden yhteensopivuussääntöjä, lasket elementtien tiheyttä tms. – välimerkit voivat heittää jakoavaimen suunnitelmiisi.

Usein haluat poistaa pysäytyssanat, välimerkit, numerot tai muut jonkin verran hahmoluokkiin sen mukaan, mikä on lopullinen tavoitteesi.

Tässä lyhyessä opetusohjelmassa tarkastellaan, kuinka välimerkit poistetaan Java-merkkijonosta.

Poista välimerkit merkkijonosta säännöllisellä lausekkeella (säännölliset lausekkeet)

Säännölliset lausekkeet sopivat tähän hyvin luonnollisesti, koska ne tulevat todennäköisesti olemaan osa muita prosessointiosia ja koska ne ovat tehokkaita kuvioiden sovittajia! Javassa välimerkkien säännöllinen lauseke on p{Punct} tai pikasana p{P}.

Sinun on vältettävä merkkijonon ensimmäistä kenoviivaa, joten kaikkien välimerkkien poistaminen vastaa niiden yhdistämistä ja korvaamista tyhjällä merkillä:

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

Sovelletaan sitä yksinkertaiseen lauseeseen:

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

Tämä johtaa:

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

Katsotaanpa tässä, mitä merkkejä käsitellään välimerkeinä:

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

Näillä erikoismerkeillä – mitkä jää jäljelle välimerkkien poistamisen jälkeen?

$+^`|~

Poista välimerkit merkkijonosta ilman säännöllistä lauseketta

Jos et halua käyttää säännöllisiä lausekkeita, voit tehdä manuaalisen tarkistuksen toistaessasi merkkijonon jokaista merkkiä. Muista käyttää a StringBuffer sijaan a String kun teet tämän, koska merkkijonot ovat muuttumattomia ja kopioita on tehtävä joka kerta, kun haluat lisätä merkin – joten luot string.length merkkijonojen määrä muistissa.

StringBuffer on muuttuva, ja se voidaan helposti muuntaa muuttumattomaksi merkkijonoksi prosessin lopussa:

Tutustu käytännönläheiseen, käytännölliseen Gitin oppimisoppaaseemme, jossa on parhaat käytännöt, alan hyväksymät standardit ja mukana tuleva huijauslehti. Lopeta Git-komentojen googlailu ja oikeastaan oppia se!

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

Luodaan merkkijono ja puhdistetaan se:

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

Vaikka tämä prosessi on paremmin muokattavissa, se tarkistaa vain kirjaimia ja numeroita. Voit vaihtoehtoisesti tarkistaa merkkikoodit manuaalisesti ja jättää sen sijaan pois vain joitain välimerkkejä – ja jättää välilyöntejä, rivinvaihtoja jne.

Yhteenveto

Tässä lyhyessä opetusohjelmassa tarkastelimme, kuinka voit poistaa välimerkit tai tietyt erikoismerkit Java-merkkijonosta käyttämällä säännöllisiä lausekkeita tai manuaalista tarkistusta parannetussa for silmukka.

Aikaleima:

Lisää aiheesta Stackabus