Avatar billede Miko93 Nybegynder
27. maj 2013 - 23:05 Der er 5 kommentarer

Indlæsning og counting

Hej alle!

Jeg har et lille problem jeg ikke kan løse :( Jeg har en tekstfil som indeholder flere tusind linjer ala :

Anarchism####http://en.wikipedia.org/wiki/Anarchism####Anarchism is the name of a political philosophy

Anar.... = titel
http:... = url
anarchism is the name... = navn

Jeg skal læse denne tekstfil ind, dog er det kun "navn" som skal blive vist. Derudover skal jeg læse antallet af ord "navn" er i hele tekstfilen.

Har nogen nogle råd til hvordan jeg kan få det lavet. Et krav i opgaven er faktisk at det skal gå så hurtig så muligt -> perfomance.

Indtil videre har jeg lavet dette:

private String fileName = ""min sti til txt fil

    public void initPersonsFromFile() {
     
        int counter = 0;
       
    try {
      FileInputStream fis;
      fis = new FileInputStream(fileName);

      Scanner scan = new Scanner(fis);
      while (scan.hasNext()) {
        String line = scan.nextLine();
        Scanner scanning = new Scanner(line);
       
        scanning.useDelimiter("####");
        String part = scanning.next();
        part = scanning.next();
        part = scanning.next();
       
        System.out.println(part);
     
        while(scan.hasNext()) {

            part.split("\\s+");
           
            scan.next();
            counter++;
        }
 
   
       
          System.out.println("Number of words: "+counter);
       
      }
      scan.close();
    } catch (FileNotFoundException ex) {
      Logger.getLogger(Opgave_1.class.getName()).log(Level.SEVERE, null, ex);
    }
  } 

}

Kan nogen hjælpe til hvordan jeg kan få countingen til at virke, og hvordan kan jeg evt. gøre programmet hurtigere (perfomance)???????
Avatar billede Miko93 Nybegynder
27. maj 2013 - 23:06 #1
Anarchism####http:\\..................####Anarchism is the name of a political philosoph
Avatar billede Miko93 Nybegynder
27. maj 2013 - 23:10 #2
min lærer har sagt at filen kan indeholde tabs og flere mellemrum osv osv ala separators. Min counting af "navn" ord .. ser ud til ikke at se bort fra disse
Avatar billede arne_v Ekspert
28. maj 2013 - 03:12 #3
.split("\\s+") burde haandtere b;andet whitespace
Avatar billede arne_v Ekspert
28. maj 2013 - 03:12 #4
Jeg tror at jeg ville laese en hel linie og saa dele i de 3 komponenter med regex fremfor at bruge scanner.
Avatar billede arne_v Ekspert
30. juli 2013 - 04:49 #5
OK?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester