Matematické Fórum


1. 8. 2026 (L) Fórum bude brzy uzavřeno 😿

Nejste přihlášen(a). Přihlásit

#1 09. 09. 2012 16:07 — Editoval tabmar420 (09. 09. 2012 16:16)

tabmar420
Zelenáč
Příspěvky: 6
Reputace:   
 

Java: Počet výskytů číslice v souboru.txt

Ahoj,
chtěl bych požádat někoho, kdo se trochu vyzná v Javě (apod.), jestli by mi nemohl shlédnout jeden úsek kódu. Jde o program, který načte číslice z textového souboru (pouze 1-9) a následně zobrazí na výstupu něco jako:
- číslice 1 je v souboru a-krát
- číslice 2 je v souboru b-krát
- ... atd.

Kód je zkompilovatelný, ale bohužel zobrazuje správný počet pouze u číslice "1" (která se zjišťuje v algoritmu jako první). U dalších program vypisuje hodnotu "0-krát". Opakované prohledávání jsem řešil for cyklem, ale zřejmě ne úplně dobře. :-/ Zasekl jsem se a nemůžu odhalit chybu! :-)) Pomůže někdo?

Problém je jistě v části:

for (byte k = 1; k < 10; k++) {
    byte x = 0;
    while ((strLine = br.readLine()) != null) {
        String[] s = strLine.split(" ");
        for (int i = 0; i < s.length; i++) {
            if (s[i].equals(String.valueOf(k))) {
                x += 1;
            }
        }
    }
    System.out.println(k+" je v souboru "+x+" krat");
}


Code:

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
 
public class dva {
    public static void main(String[] args) {
        
        try {
            FileInputStream fis = new FileInputStream("soubor.txt");
            BufferedReader br = new BufferedReader(new InputStreamReader(fis));
            String strLine;
            
            for (byte k = 1; k < 10; k++) {
                byte x = 0;
                while ((strLine = br.readLine()) != null) {
                    String[] s = strLine.split(" ");
                    for (int i = 0; i < s.length; i++) {
                        if (s[i].equals(String.valueOf(k))) {
                            x += 1; 
                        }
                    }
                }
                System.out.println(k+" je v souboru "+x+" krat");
            }
            
        }
        catch(Exception e) {
            System.out.println(e);
        }

    }
}

soubor.txt:
1 4 9 8 9
1 5 4 3 1 5 1 7 1 9
2 1 2 3 2 4 2 7 3 9
3 1 3 3 3 5 3 7 3 9
4 1 4 3 4 5 4 7 4 9
5 1 5 3 5 4 5 7 5 9
6 1 6 3 6 6 7 6 9 4
7 4 7 3 7 5 7 7 7 9
8 1 8 3 8 5 8 7 8 9
9 1 9 3 9 5 9 7 9 9

Offline

  • (téma jako vyřešené označil(a) tabmar420)

#2 09. 09. 2012 16:39

Stýv
Vrchní cenzor
Příspěvky: 5710
Reputace:   215 
Web
 

Re: Java: Počet výskytů číslice v souboru.txt

řekl bych, že po spočítání jedniček se nevrátíš na začátek souboru, tudíž už žádný další čísla nenapočítáš

Offline

 

#3 09. 09. 2012 17:18 — Editoval tabmar420 (09. 09. 2012 17:19)

tabmar420
Zelenáč
Příspěvky: 6
Reputace:   
 

Re: Java: Počet výskytů číslice v souboru.txt

Díky! Asi to bylo skutečně tím. Vyřešil jsem to sice ne-příliš čistě, ale funguje to. ↑ Stýv:

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson