HTML.it è il sito italiano del web publishing

[JAVA] Modificare file di testo rimuovendo spazi tra le parole



scegli un altro forum
    Indietro   Ricarica   Avanti Invia una risposta

Autore
Discussione     
5t4rdu5t
Utente di HTML.it



Registrato il: Sep 2010

Provenienza:

Messaggi: 178


ICQ:

MSN:

Skype:


modificare file.txt
sto studiando da poco gli input/output da tastiera e da file. Dovrei fare un input da file in cui nel miofile.txt ho sia numeri e nomi ad esempio:

14554 nomepippopippo 00
555nomepippo
nomepluto 000

dovrei riuscore a ottenere un file out.txt in cui ho solo i nome e senza spazi ulteriori tipo:

nomepippopippo
nomepippo
nomepluto

come posso fare una cosa del genere? Io fin ora ho usato il pakage java.io usando le classi riguardanti gli inputi stream e file reader cose del genere.

Segnala ad un moderatore | IP: Collegato | Permalink

5t4rdu5t è offline Old Post 26-06-2012 06:35
Clicca qui per vedere il profilo dell'utente 5t4rdu5t Clicca qui per inviare all'utente 5t4rdu5t un messaggio privato Visualizza ulteriori messaggi scritti dall'utente 5t4rdu5t Aggiungi l'utente 5t4rdu5t alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
valia
Utente di HTML.it



Registrato il: Feb 2007

Provenienza:

Messaggi: 3759


ICQ :

MSN :

Skype :


la via più semplice è:

1. leggi da un file di input
2. togli quello che non ti interessa
3. scrivi su un altro file di output

ottimizzazioni possono essere fatte, ma l'idea di base è questa


__________________
RTFM Read That F*** Manual!!!

Segnala ad un moderatore | IP: Collegato | Permalink

valia è offline Old Post 26-06-2012 08:05
Clicca qui per vedere il profilo dell'utente valia Clicca qui per inviare all'utente valia un messaggio privato Visualizza ulteriori messaggi scritti dall'utente valia Aggiungi l'utente valia alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
5t4rdu5t
Utente di HTML.it



Registrato il: Sep 2010

Provenienza:

Messaggi: 178


ICQ :

MSN :

Skype :


ok grazie ma per togliere quello che non mi serve come faccio?? mi devo decumentare solo su java.io?

Segnala ad un moderatore | IP: Collegato | Permalink

5t4rdu5t è offline Old Post 26-06-2012 15:52
Clicca qui per vedere il profilo dell'utente 5t4rdu5t Clicca qui per inviare all'utente 5t4rdu5t un messaggio privato Visualizza ulteriori messaggi scritti dall'utente 5t4rdu5t Aggiungi l'utente 5t4rdu5t alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
valia
Utente di HTML.it



Registrato il: Feb 2007

Provenienza:

Messaggi: 3759


ICQ :

MSN :

Skype :


leggi bene, non lavori mai direttamente sul file (a meno che non sei costretto)

1. leggi da un file di input significa leggi e carica in memoria una riga o tutto il file, fai te
2. usi i metodi di String per togliere quello che nno ti interessa
3. scrivi il risultato sul file di output


__________________
RTFM Read That F*** Manual!!!

Segnala ad un moderatore | IP: Collegato | Permalink

valia è offline Old Post 26-06-2012 16:09
Clicca qui per vedere il profilo dell'utente valia Clicca qui per inviare all'utente valia un messaggio privato Visualizza ulteriori messaggi scritti dall'utente valia Aggiungi l'utente valia alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
5t4rdu5t
Utente di HTML.it



Registrato il: Sep 2010

Provenienza:

Messaggi: 178


ICQ :

MSN :

Skype :


stavo provando a fare una cosa del genere prendo in input un BufferedReader per leggere un file in cui ho: nella prima riga il numero delle righe presenti nel file, e dopo una serie di numeri.Ad esempio codice:
3
12 5 1 7 3 9 23 43 21 12 11 5 14
8 42 20 76 2 10 14 22 8
10 2 33 42 8 9 65 37 2 88 21


in output devo avere un file in cui ho 1 se i prodotti sn dispari 0 altrimenti.
non capisco dove sbaglio, credo il problema sia nella chiusura dello stream

codice:
	public static int [] array (BufferedReader a) throws IOException {
		
		int [] data = new int[a.read()];
			
			for(int i = 0; i<data.length; i++) {
				
				data[i] = a.read();
				
				
				
			}
		
		return data;
		
	}
	
	public static boolean controlla(int data[]) {
		
		for(int i = 0; i<data.length; i++) {
			
			for(int j = i+1; j<data.length-1; j++) {
				
				int c = data[i]*data[j];
				if(c%2!=0) return true;
			}
		}
		return false;
	}
	
	
	
	public static void main(String[] args) {
		
		
		try {
			
			BufferedReader reader = new BufferedReader(new FileReader("input.txt"));
			BufferedWriter out =    new BufferedWriter(new FileWriter("output.txt"));
		
			int b = reader.read();
					
			for(int x = 0; x <b; x++) {
				
				int [] data =array(reader);
				
					if(controlla(data)==true) {
						
						out.write(1);
						
						
					}
					
					else {
						
						out.write(0);
						
					}
					
			}
			
			out.close();
			
		}
		
		catch(IOException e) {
			e.printStackTrace();
		}

	}

Segnala ad un moderatore | IP: Collegato | Permalink

5t4rdu5t è offline Old Post 02-07-2012 12:24
Clicca qui per vedere il profilo dell'utente 5t4rdu5t Clicca qui per inviare all'utente 5t4rdu5t un messaggio privato Visualizza ulteriori messaggi scritti dall'utente 5t4rdu5t Aggiungi l'utente 5t4rdu5t alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
5t4rdu5t
Utente di HTML.it



Registrato il: Sep 2010

Provenienza:

Messaggi: 178


ICQ :

MSN :

Skype :


ho capito che devo usare StringTokenizer e i metodi hasMoretoken nexttoken..ma non so come fare...qualche consiglio???

Segnala ad un moderatore | IP: Collegato | Permalink

5t4rdu5t è offline Old Post 05-07-2012 08:22
Clicca qui per vedere il profilo dell'utente 5t4rdu5t Clicca qui per inviare all'utente 5t4rdu5t un messaggio privato Visualizza ulteriori messaggi scritti dall'utente 5t4rdu5t Aggiungi l'utente 5t4rdu5t alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
valia
Utente di HTML.it



Registrato il: Feb 2007

Provenienza:

Messaggi: 3759


ICQ :

MSN :

Skype :


perchè tutti (non solo tu) avete l'abitudine di complicarvi la vita!!!
Allora, leggi riga per riga da un file.
Quella riga che hai letto è una stringa che contiene caratteri blank se vuoi, ma cmq una stringa. Una soluzione ottimizzata in assoluto non esiste, al massimo sai che ad ogni spazio corrisponde un numero (es. il primo blank ce l'hai a 12, il secondo dopo 5 ecc).

codice PHP:

string 
string.trim(); 
int ret string.indexOf(" "); 
int index 0
while (
ret 0){
    
index++;
  
ret string.indexOf(" "index );
  }


alla fine trovo sia leggermente (non so di quanto) migliore dell'andarsi a creare per ogni riga del file un array di stringhe (quello che fa il tokenizer) solo per sapere quante sono (senza cioè guardare al contenuto).

finito quel ciclo scrivi l'output


__________________
RTFM Read That F*** Manual!!!

Ultima modifica ad opera dell'utente valia il 05-07-2012 alle 08:42

Segnala ad un moderatore | IP: Collegato | Permalink

valia è offline Old Post 05-07-2012 08:34
Clicca qui per vedere il profilo dell'utente valia Clicca qui per inviare all'utente valia un messaggio privato Visualizza ulteriori messaggi scritti dall'utente valia Aggiungi l'utente valia alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
Tutte le ore sono con fuso orario CET. Ora sono le 23:00.     

    Ultima discussione   Prossima discussione Invia una risposta
Versione per la stampa | Invia il thread via email | Ricevi aggiornamenti sul thread | Scarica il thread
 

Cerchi un argomento specifico e hai fretta? Usa il motore di ricerca