Domanda

ho deciso di creare un convertitore di valuta in Java, e lo hanno in modo che sarebbe tirare i valori di conversione su un file di testo (per consentire un facile modificabilità in quanto questi valori sono in continua evoluzione). Sono riuscito a farlo utilizzando la classe Scanner e mettendo tutti i valori in un ArrayList.

Ora mi chiedo se c'è un modo per aggiungere commenti al file di testo per l'utente di leggere, che Scanner ignorerà. "//" non sembra funzionare.

Grazie

È stato utile?

Soluzione

Il modo migliore sarebbe quello di leggere il file riga per riga usando java.io.BufferedReader e la scansione di ogni linea per commenti utilizzando String#startsWith() dove in ricerche per "//".

Ma avete pensato di utilizzare un file di proprietà e gestirlo utilizzando il java.util.Properties API? In questo modo è possibile beneficiare di una specifica ready-made e API ed è possibile utilizzare # come inizio della riga di commento. Si veda anche il tutorial sun.com .

Altri suggerimenti

Scanner solito ignorare tutto ciò, si dovrà rimuovere i commenti dai vostri dati dopo aver letto in.

Sì, while ((currentLine = bufferedReader.readLine ())! = Null) è forse il più facile, quindi eseguire i test necessari. currentLine.split (regex) è anche molto utile per convertire una linea in una matrice di valori utilizzando un delimitatore.

Con Java NIO, si potrebbe fare qualcosa di simile. Supponendo che si desidera ignorare le linee che iniziano con "//" e finire con un ArrayList.

List<String> dataList;
Path path = FileSystems.getDefault().getPath(".", "data.txt");
dataList = Files.lines(path)
             .filter(line -> !(line.startsWith("//")))
             .collect(Collectors.toCollection(ArrayList::new));
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top