|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Aug 2008
Messaggi: 12
|
[JAVA] Cosa devo fare per...
Salve a tutti, vorrei chiedervi aiuto per risolvere questo problema. Ho 2 file di testo. Nel primo ho 2 colonne: la prima contiene numeri identificativi. La seconda contiene url. Anche nel secondo file ho 2 colonne: La prima contenente numeri identificativi corrispondenti a quelli del primo file, la seconda un punteggio. Come posso fare per ottenere un file di risultato contenete gli url con affianco il corrispondente punteggio?
|
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Poi leggi il primo file, per ogni riga estrai ID e URL. Vai a cercare l'ID nella map per avere il punteggio, quindi scrivi (su un altro file) l'URL e il punteggio. Questo a grandi linee. Poi per la lettura e la estrazione dei valori, chiaramente bisogna vedere meglio come sono fatti i file: le due colonne sono separate da un separatore?? O la prima colonna ha lunghezza fissa?? In quale charset sono scritti? Per leggere "a righe" puoi usare BufferedReader, poi usi un qualche split o substring o regex (in base al formato) per estrarre i campi. Un valore numerico lo converti dalla stringa del campo con parseInt() di Integer. Anzi .. visto che l'ID lo devi avere come oggetto per poterlo mettere nella map, conviene usare valueOf().
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Così su due piedi:
carichi le coppie ID - Url e ID - Punteggi in due HashMap. Quindi usi i due HahMap sfruttando gli ID comuni per generare il nuovo file che conterrà gli Url e i punteggi. Oppure metti in un HashMap solo le coppie ID-URL contenute nel primo file e praserizzi il secondo: per ogni ID associato a un Punteggio incontrato vai a recuperare nell'HashMap l'URL che ha come chiave lo stesso ID e scrivi la coppia URL-Punteggio su un nuovo file (o in una stringa in memoria e poi sostituisci i file o ci fai quel che ti pare) @EDIT: scusa Andbin, mi sono "sovvraposto" per eccessiva latenza nell'editing del messaggio (sono stato interrotto e poi ho postato)
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) Ultima modifica di banryu79 : 26-08-2008 alle 10:12. |
![]() |
![]() |
![]() |
#4 | |
Junior Member
Iscritto dal: Aug 2008
Messaggi: 12
|
Quote:
5 216.3400000000000034106051316 48 215.2700000000000102318153949 3 210.6800000000000068212102633 ... il file ID_URL è così: NodeId Module 1 http://www.dmoz.org/Arts/Literature/...and_Folktales/ 2 http://blog.dmoz.org/ 3 http://search.dmoz.org/cgi-bin/search ... Onestamente non so di cosa stai parlando. Cosa intendi? |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Sembra che tra l'ID e il Punteggio o l'URL il delimitatore sia un semplice carattere di spazio.
In questo caso potresti usare in modo semplice la classe Scanner Prova a darci un'occhiata.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
![]() |
![]() |
![]() |
#6 |
Junior Member
Iscritto dal: Aug 2008
Messaggi: 12
|
Allora seguendo i vostri consigli uso la classe Scanner per acquisire ID e Punteggio dal file. Dopo di che cerco di inserire con "put" questi dati nell'HashMap ma non li inserisce!!!!!! Ho provato a fare questo:
HashMap hm = new HashMap(); File f = new File("IDPunteggio.txt"); Scanner s = new Scanner(f); String key = s.next(); String punt = s.next(); System.out.println(hm.get(1)); Ho controllato ed effettivamente s.next() acquisisce i dati dal file. In cosa sbaglio? Edit: niente ho risolto ![]() Ultima modifica di DonDepo : 27-08-2008 alle 08:01. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:07.