Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Cr4ckz!
    Registrato dal
    Aug 2003
    Messaggi
    163

    [JAVA]applicazione che non riesce a trovarmi il file

    Ciao ragazzi, ho un altro piccolo quesito per voi

    Devo fare un semplice programmino che mi dia la frequenza di ogni lettera dato in input un testo da file...con l'algoritmo non ho problemi anche perchè è una cavolata...ma invece ho problemi a fargli trovare il file... ho provato sia a metterlo nella cartella del package, sia nella cartella build/classess e sia a dargli un percorso...ma niente, non me lo trova -.-' e il bello che sono pure su Linux e quindi il percorso è molto più semplice che su win.. /home/spriggan/text.txt ma continua a dirmi che non trova il file -.-'

    ecco qui la classe Main:

    codice:
    package perclettere;
    import java.io.*;
    public class Main {
        public static void main(String[] args) throws IOException {
            InputStreamReader flux= new InputStreamReader(System.in);
            BufferedReader tastiera = new BufferedReader(flux);
            ContaChar c;
            String path;
            System.out.println("\nPERCORSO DEL FILE: ");
            path=tastiera.readLine();
            c=new ContaChar(path);
        }
    }
    e la classe ContaChar:
    codice:
    package perclettere;
    import java.io.*;
    public class ContaChar {
        BufferedReader fileInput;
        FileReader fileBuffer;
        String path,l;
        char x;
        int i,pos,cont=0;
        float v[];
        public ContaChar(String path) {
            this.path=path;
            v=new float[26];
            try{
                fileBuffer= new FileReader(path);
                fileInput= new BufferedReader(fileBuffer);
                l=fileInput.readLine();
                while(l!=null){
                    l=l.toUpperCase();
                    for(i=0;i<l.length();i++){
                        if(lettera(l.charAt(i))){
                            pos=l.charAt(i)-'A';
                            v[pos]++;
                            cont++;
                        } else
                            accentata(l.charAt(i));
                    }
                }
                fileInput.close();
                stampa();
            }catch(Exception e){
                System.out.println("\nFile non trovato");
            }
            
        }
        public boolean lettera(char x){
            this.x=x;
            if(Character.isLetter(x))
                return true;
            return false;
        }
        public void accentata(char x){
            this.x=x;
            switch(x){
                case 'Á':
                case 'À': v[0]++;
                          cont++;
                          break;
                case 'É':
                case 'È': cont++;
                          v[4]++;
                          break;
                case 'Í':
                case 'Ì': v[8]++;
                          cont++;
                          break;
                case 'Ó':
                case 'Ò': cont++;
                          v[14]++;
                          break;
                case 'Ú':
                case 'Ù': cont++;
                          v[20]++;
                          break;
                default:
            }
        }
        public float percentuale(int i){
            return v[i]*100/cont;  
        }
        public void stampa(){
            System.out.println("\n\t\tSTATISTICA DELLE LETTERE PRESENTI NEL TESTO: ");
            for(i=0;i<26;i++)
                    System.out.println((char)('A'+i)+": "+percentuale(i)+" %");
        }   
    }
    thx in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    ho eseguito il programma sotto win passado il file per stringa e funziona, ma mi sai che nn hai fatto tanto i conti con la procedura che conta i caratteri, perchè gira all'infinito qui:

    codice:
    while(l!=null){
                    l=l.toUpperCase();
                    for(i=0;i<l.length();i++){
                        if(lettera(l.charAt(i))){
                            pos=l.charAt(i)-'A';
                            v[pos]++;
                            cont++;
                        } else
                            accentata(l.charAt(i));
                    }
                }
    questo è il codice riscritto

    codice:
    while(l!=null){
                    l=l.toUpperCase();
                    for(i=0;i<l.length();i++){
                        if(lettera(l.charAt(i))){
                            pos=l.charAt(i)-'A';
                            v[pos]++;
                            cont++;
                        } else
                            accentata(l.charAt(i));
                    }
                    l=fileInput.readLine();
                }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.