Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    36

    concatenazione stringhe [java]

    Salve a tutti!
    Sto cercando di fare un programma che, date n stringhe(max 10) dall'utente e salvate su un file(anche senza estensione), il programma mi restituisca la concatenazione delle stringhe inserite.
    Es:
    v[0] = ciao
    v[1] = sono
    v[2] = pippo
    mi venga stampato a video: ciao solo pippo

    Io ho fatto cosi, ma non riesco a capire la logica per il quale il mio vettore all'interno mi risulti vuoto!
    codice:
    //Programma per concatenare stringhe date dopo averle salvate il un file 
    import java.io.*; 
    import java.util.Scanner; 
    public class concatenazionestringhe{ 	
    public static void main ( String arg []) throws IOException{ 		
    Scanner in=new Scanner(new FileReader (arg[0])); 		
    final int MAX=10; 		
    int v[]= new int [MAX]; 		
    int n=0; 		
    while (in.hasNextInt()) v[n++] = in.nextInt(); 		
    for(int i=0; i<v.length; i++){ 			
    System.out.println(v);			 		
    } }}
    Per farlo funzionare da terminale faccio:
    -javac concatenazionestringhe.java
    -cat > fileconstringhe
    ciao
    sono
    pippo
    (Ctrl+d)
    -java concatenazionestringhe pippo

    Qualcuno di voi puoi aiutarmi a capire dove sbaglio? grazie!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Spostato nel forum dedicato a Java.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Allora ti pregherei (per la prossima volta) di formattare correttamente il codice in fase di scrittura, non so come ti raccapezzi così.

    Visto che stai supponendo di leggere un file che passi come argomento, il programma viene lanciato con il seguente comando

    codice:
    java MainClass nomeFile
    e questo va in arg[0].
    Ovviamente un controllo di validità su arg[0] non è mai male (banalmente sei sicuro di aver messo almeno un parametro?)

    poi quando leggi il file

    codice:
    int index = 0; 
    while (in.hasNext()){
              v[index] = in.nextString();
              index++;
    }
    infine per stamparlo, tu fai questo ciclo

    codice:
    for (index = 0; index < v.length; index++){
        System.out.println(v[index]);
    }
    ed è corretto, ma tu chiami println, non print, println automaticamente va a capo dopo aver scritto il messaggio.

    TI consiglio un metodo che ti metta il vettore su una stringa e restituisca quella (fai una conversione in pratica) e la stampi

  4. #4
    ma soprattuto: se inserisci le stringhe nel file fileconstringhe
    codice:
    -cat > fileconstringhe
    ciao
    sono
    pippo
    (Ctrl+d)
    come mai leggi il file pippo
    codice:
    -java concatenazionestringhe pippo

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ehehe io l'output non l'ho guardato semplicemente perché ci sono errori nell'algoritmo (almeno di come è scritto), quindi prima si correggono quelli e poi si vede

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    36
    Grazie valia per il tuo aiuto.
    Ho corretto con le tue correzzioni ma ho un errore su "in.nextString" e non capisco cosa sia:
    codice:
    //Programma per concatenare stringhe date dopo averle salvate il un file
    import java.io.*;
    import java.lang.*;
    import java.util.*;
    public class concatenazionestringhe{
    	public static void main ( String arg []) throws IOException{
    		Scanner in=new Scanner(new FileReader (arg[0]));
    		final int MAX=10;
    		int v[]= new int [MAX];
    		int n=0;
    		while (in.hasNext()){
    			v[n] = in.nextString();
    			n++;
    		}
    		for(n=0; n<v.length; n++){
    			System.out.print(v[n]);			
    		}
    	}
    }
    l'errore in uscita è:
    codice:
    symbol  : method nextString()
    location: class java.util.Scanner
    			v[n] = in.nextString();
    			         ^
    goggle01: per quanto riguarda l'output ho facco confuzione quando stavo scrivendo il post. grazie cmq

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da Etidr3k
    l'errore in uscita è:
    codice:
    symbol  : method nextString()
    location: class java.util.Scanner
    			v[n] = in.nextString();
    			         ^
    goggle01: per quanto riguarda l'output ho facco confuzione quando stavo scrivendo il post. grazie cmq
    Qui hai tranciato la prima parte dell'eccezione, ovvero la più importante: quale eccezione viene lanciata?


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Molto probabilmente ti dirà che nextString() non esiste in Scanner...

    next() restituisce il prossimo token, e nextLine() ( http://download.oracle.com/javase/6/...nextLine%28%29 )

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    io con nextString sono andata a memoria, ovviamente presumo che si controllino le API e non si faccia copia e incolla puro!

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.