Stránky: 1
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");
}
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
Stránky: 1