Licznik słów bez znakow specjalnych

0

Czesc pisze program ktory ma liczyc slowa i pozniej na ekranie wypisac ilosc tych slow oraz te slowa jeden pod drugim, np.
Żółte, jasne słońce.
Ilość słów: 3
Żółte
jasne
słońce

Nie ogarniam co mam zrobic zeby slowa byly liczone i wypisywane bez znakow specjalnych. obecnie u mnie wygląda to mniej wiecej tak:

Zdanie: Dom# kot % ^ &
Ilosc słów: 5
Dom#
kot
%
^
&

Jak widzicie znaki specjalne program traktuje jako osobne słowa. Co moglbym zrobic zeby tak sie nie dzialo?

wprowadzone przez uzytkownika zdanie zamienilem na tablice stringow za pomoca metody .split(" ");

1

jako argument dla splita użyj regexpa z wszystkimi znakami które mogą pojawić się w tekście a nie należą do żadnego słowa

0

Zrobiłem tak:

String reg = "!@#$%^&*()_+-=;':,./<>?";
String[] slowa=zdanie.split(reg);

zdanie to jest to, co wprowadza użytkownik. A efekt jest taki:

Zdanie: aaa$ a $ 5 sr%
Ilosc słów: 1
aaa$ a $ 5 sr%

Teraz to w ogóle cos zepsulem :/ moze zle wpisalem argument dla splita?

1
int wordCount = line.split("[^\\d\\p{IsAlphabetic}]+", 0).length;

https://ideone.com/grxEyV
https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

1

przepraszam ze nie podalem kodu, moj blad. oto on:

import java.util.Scanner;
import java.lang.*;
class KL1 {
    public static void main(String[] args) {
        Scanner klaw = new Scanner(System.in);
        String zdanie=klaw.nextLine();
        
        System.out.println("Zdanie: "+ zdanie);             
        String reg = "!@#$%^&*()_+-=;':,./<>?";
        String[] slowa=zdanie.split(reg);
        int licznikSlow=slowa.length;

System.out.println("Ilosc słów: " + licznikSlow);
        for (String a : slowa) {
            System.out.println(a);
            
        } 
}
}
vpiotr napisał(a):
> int wordCount = line.split("[^\\d\\p{IsAlphabetic}]+", 0).length;
> ```
> 
> 
> https://ideone.com/grxEyV
> https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

co oznacza ten zapis?
"[^\\d\\p{IsAlphabetic}]+", 0

1 użytkowników online, w tym zalogowanych: 0, gości: 1