Wczytywanie słów z pliku pomijające określone znaki?

0

Jak wczytywać słowa z pliku z pomijając znaki: spacji " , . ; : /

0

z tego co pamietam spacji domyslnie nie czyta, jeśli czytamy po kolei po słowach, a co do znaków to bym sprawdzał czy wyczytany "wyraz" to ten znak, jesli tak to leciał dalej i go nie zapamietywał (nie wrzucał do listy, nie println'ował etc.)

0

Tak spacji faktycznie nie czyta. Ale mam np: "ala", :ma kota. Chciałbym wczytać tylko ala ma kota. Jak będę rozpatrywać każdy wczytany wyraz czy ma znaki "specjalne" to wydaję mi się, że przy 10 tys. Słów będzie to działać bardzo wolno.

0

hmm powiem szczerze, że nie wiem jakie byłoby tempo działania. Ja bym spróbował zrobić tak, że brać po wyrazie i po kolei sprawdzac czy w ogole zawiera taki znak, jesli nie to wyswietlic/zapisac w liście X, jesli posiada to nie usuwać go Od razu tylko wrzucic do listy Y, potem jeśli trzebaby było robic operacje na tych wyrazach to najpierw wyswietlimy/operujemy na liście X gdzie są "czyste" wyrazy, a potem (albo w tym samym czasie w osobnym wątku nawet) po tych operacjach usunąłbym znaki specjalne z kazdego wyrazu listy Y i Od razu po usunieciu wrzucał do listy X.
Wg. mnie dałoby to tyle, ze czesc wyrazów dostepna byłaby od razu, wiec mogłoby to przyspieszyć, ale to tylko moje zdanie ciekaw jestem jak by do tego podeszli bardziej doswiadczeni koledzy ;)

0

Poniższy kod pominie również tabulatory.

        ArrayList<String> words = new ArrayList<String>();
        Pattern p = Pattern.compile("\\s+|;|:|,|/|\\x2e|\"");
        try
        {
            Scanner sc = new Scanner(new File("..."));
            while(sc.hasNextLine())
            {
                
                String s = sc.nextLine();
                String[] items = p.split(s);
                System.out.println(items.length);
                for(int i=0;i<items.length;i++)
                {
                    if(items[i].length()>0)
                    {
                        words.add(items[i]); 
                    }
                }  
            }
            System.out.println(words);
            sc.close();
        }
        catch(Exception e)
        {
            System.out.println(e);
        }

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