regex liczy polski znak jako separator

0

podzielilem zdanie wprowadzone przez uzytkownika za pomoca metody split w ten sposob:

String[] x=line.nextLine().split("[^a-zA-ZżźćńółęąśŻŹĆĄŚĘŁÓŃ]+");

i niestety polskie znaki liczone sa jako separator przez co takie zdanie:
Poszła tam.
ma wg programu 3 wyrazy (posz, a, tam). co jest nie tak z tym regexem? taki znalazlem w necie a mimo to nie dziala a chcialbym zeby polskie znaki nie byly uwazane za separator :/

0

Coś chyba pokręciłeś, bo działa, jak powinno.

  public static void prS(String [] s) {
    for (int i = 0; i < s.length; ++i){
      System.out.print(s[i] + ", ");
    }
  }
  public static void main(String[] args) {
    String line = "Poszła tam";
    String[] x = line.split("[^a-zA-ZżźćńółęąśŻŹĆĄŚĘŁÓŃ]+");
    prS(x);  // -> Poszła, tam
  }
0

@lion137
okej faktycznie zrobiłem literówkę i dziala ale jak wpisze zdanie w program, natomiast jak chce odczytac z pliku zdanie z polskimi znakami to ten problem sie pojawia a robie tak samo:

                String[] words = reader.nextLine().split("[^a-zA-ZżźćńółęąśŻŹĆĄŚĘŁÓŃ]+");
               int counter = words.length;

i wartosc counter dla tego samego zdania (Poszła tam.) wyjdzie 3

0

Debugowałeś, jak to tam wszystko naprawdę wygląda?

0

nie bo nie potrafie, dopiero sie ucze :(

0

To polecam zapoznać się z jakimś debugerem; w IDE, jak IntlliJ, na przykład.

1

dobra, wystarczylo tylko dodac "UTF-8" :

Scanner reader = new Scanner(file, "UTF-8"));

teraz działa

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