Visualizzazione dei risultati da 1 a 4 su 4

Discussione: StringTokenizer

  1. #1

    StringTokenizer

    Salve a tutti.
    Devo riuscire a ottenere tramite l'input di una stringa, il seguente risultato

    codice:
    Questa applicazione legge da input una stringa del tipo x/y+x1/y1+x2+x3+...+xn/yn
    Il numero xj non seguito da barra denota la frazione x/1
    
    quindi 
    
    INPUT: 3+5/6+9/4+7+2/3
    OUTPUT: 55/4
    Ho fatto il seguente:
    codice:
    import java.io.*;
    import prog.io.*;
    import prog.utili.*;
    import java.util.*;
    
    public class Esercizio5_1 {
    
        public static void main (String[] args) {
        	StringTokenizer sktn1, sktn2;
        	Frazione somma= new Frazione(0);
        	int numeratore, denominatore;
        	ConsoleInputManager in= new ConsoleInputManager();
        	ConsoleOutputManager out= new ConsoleOutputManager();
        	String stringa= in.readLine("Inserisci la stringa rappresentante la sequenza di frazioni:   ");
        	
        	sktn1= new StringTokenizer(stringa,"+");
        	
        	 while (sktn1.hasMoreTokens()){
        	 	
        	 	sktn2= new StringTokenizer(sktn1,"/");
        	 	 numeratore=Integer.parseInt(sktn2.nextToken());
        	 	  
        	 	   if (sktn2.hasMoreTokens())
        	 	   	  denominatore=Integer.parseInt(sktn2,nextToken());
        	 	   else
        	 	   	   denominatore=1;
        	 	   	   
        	 	  somma=somma.piu((new Frazione(numeratore,denominatore))) ;
        	 	  	   	  
        	 	 }
        	
        	System.out.println("La somma è: " +somma.toString);
        	
        	
        }
        
        
    }
    Solo che mi da i seguenti errori
    codice:
    C:\Documents and Settings\admin\Desktop\java\Esercizio5_1.java:27: cannot find symbol
    symbol  : constructor StringTokenizer(java.util.StringTokenizer,java.lang.String)
    location: class java.util.StringTokenizer
                sktn2= new StringTokenizer(sktn1,"/");
                       ^
    C:\Documents and Settings\admin\Desktop\java\Esercizio5_1.java:31: cannot find symbol
    symbol  : method nextToken()
    location: class Esercizio5_1
                      denominatore=Integer.parseInt(sktn2,nextToken());
                                                          ^
    C:\Documents and Settings\admin\Desktop\java\Esercizio5_1.java:39: cannot find symbol
    symbol  : variable toString
    location: class prog.utili.Frazione
            System.out.println("La somma è: " +somma.toString);
                                                    ^
    3 errors
    Una mano per sistemarlo?

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: StringTokenizer

    Originariamente inviato da 19pantarei75
    codice:
    C:\Documents and Settings\admin\Desktop\java\Esercizio5_1.java:27: cannot find symbol
    symbol  : constructor StringTokenizer(java.util.StringTokenizer,java.lang.String)
    location: class java.util.StringTokenizer
                sktn2= new StringTokenizer(sktn1,"/");
                       ^
    Al posto di sktn1 devi inserire la stringa da spezzettare.

    Originariamente inviato da 19pantarei75
    codice:
    C:\Documents and Settings\admin\Desktop\java\Esercizio5_1.java:31: cannot find symbol
    symbol  : method nextToken()
    location: class Esercizio5_1
                      denominatore=Integer.parseInt(sktn2,nextToken());
                                                          ^
    Forse volevi scrivere sktn2.nextToken()?

    Originariamente inviato da 19pantarei75
    codice:
    C:\Documents and Settings\admin\Desktop\java\Esercizio5_1.java:39: cannot find symbol
    symbol  : variable toString
    location: class prog.utili.Frazione
            System.out.println("La somma è: " +somma.toString);
    Stai chiamando un metodo, hai dimenticato le parentesi: toString()

    Originariamente inviato da 19pantarei75
    Una mano per sistemarlo?
    Bastava leggere gli errori...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Grazie per avere risposto.
    Ho corretto gli ultimi 2 errori.
    ma ancora c'è questo

    codice:
    C:\Documents and Settings\admin\Desktop\java\Esercizio5_1.java:27: cannot find symbol
    symbol  : constructor StringTokenizer(java.util.StringTokenizer,java.lang.String)
    location: class java.util.StringTokenizer
                sktn2= new StringTokenizer(sktn1,"/");
                       ^
    1 error
    quando creo sktn2 vorrei passargli la stringa sktn1 ottenuta dal primo StringTokenizer. (almeno è quello l'intento)
    Ovvero se ho 1/2+2/3... il primo StringTokenizer mi prende le stringhe 1/2, 2/3
    Il secondo le analizza singolarmente.
    Non so se sono stato chiaro.

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da 19pantarei75
    codice:
    C:\Documents and Settings\admin\Desktop\java\Esercizio5_1.java:27: cannot find symbol
    symbol  : constructor StringTokenizer(java.util.StringTokenizer,java.lang.String)
    location: class java.util.StringTokenizer
                sktn2= new StringTokenizer(sktn1,"/");
                       ^
    1 error
    quando creo sktn2 vorrei passargli la stringa sktn1 ottenuta dal primo StringTokenizer. (almeno è quello l'intento).
    sktn1 NON È una stringa, è un StringTokenizer! E quando costruisce sktn2 devi indicare una stringa, non un altro StringTokenizer!
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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.