Co jest nie tak w tym zadaniu?

0

http://www.jkozak.pl/przedmioty/java/zadania6.pdf
Dokładnie to przykład 7 ;)

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;

public class abc {

 public static void NAPISY(String nazwaPliku) throws FileNotFoundException{
     //tworzę 2 tablice, w jednej przechowuję litery z tablicy ASCII, a w drugiej przypisuje 0 i następnie będę zwiększał wartość pola o ile dana litera wystąpi
     char[] chars=new char[26];
     int[] chars2=new int[26];
     int znak=97;
     for(int i=0; i<=26; i++){
         chars[i]=(char)znak;
         chars2[i]=0;
         znak++;
     }

     Scanner in= new Scanner(new File(nazwaPliku));
     while(in.hasNextLine()){
     //sprawdzam, czy dana litera wystąpiła 
         String linia=in.nextLine();
         for(int i=0; i<linia.length(); i++)
         for(int j=0; j<chars.length; j++){
             if(linia.charAt(i)==chars[j])chars2[j]++;
         }
 }
     //wyznaczam maxa
     int max=chars2[0];
     for(int i=0; i<=26; i++){
         if(chars2[i]>max)max=chars2[i];
     }
     ///buduję tzw.wykres
     for(int i=0; i<=26; i++){
         int ileObecny=chars2[i];
         int gwiazdki=50*(ileObecny/max);
         System.out.print(chars[i]+" ");
         abc.piszGwiazdki(gwiazdki);
         System.out.print(" "+ileObecny);
         System.out.println();
     }
 }

 public static void piszGwiazdki(int ile){
     for(int i=0; i<ile; i++)System.out.print("*");
 }

 public static void main(String[] args) throws InterruptedException, FileNotFoundException {

        NAPISY("c.txt");
 }  

}
0

Jeżeli masz tablicę 26 znaków to pierwszy element znajduje się pod indeksem 0 a ostatni pod indeksem 25, więc problemem jest ta pętla:

for(int i=0; i<=26; i++){ // Pętla przepuści i == 26 - indeks znajduje się poza tablicą
    chars[i]=(char)znak;
    chars2[i]=0;
    znak++;
}

Na przyszłość - opisuj problemy, pisz jaki wyjątek dostajesz i na której linii.
Jak zadawać pytania na forum

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