2016-12-20 2 views
0

Zum Beispiel, ich möchte diese Liste aktivieren:Wie konvertiere ich Zeilen von Wörtern in einem einzigen Array

Hund Katze

Bäume Brise

...

, die eine bestimmte Anzahl von Zeilen mit jeweils zwei Wörtern in einem einzigen Array enthält.

Wie mache ich das mit BufferedReader? Das Problem ist, ich weiß nicht, wie man für sagen x Zeiten ohne eine for Schleife oder etwas weiter pars. Wie würde ich es mit einer for Schleife machen? Hier

ist Beispielcode:

BufferedReader br = new BufferedReader(new FileReader("input.in")); 
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("input.out"))); 
static int[] words 
for (int i=1; i<2N; i+2) { 
    StringTokenizer i 
     words[i] = String.parsestring} 
} 
} 
+1

Ganz einfach: in jeder Zeile, aufgeteilt auf Leerzeichen lesen, und fügen Sie beide Wörter in eine Liste. Hast du schon etwas probiert? –

+0

Bitte zeigen Sie, welchen Code Sie bisher haben, damit wir Ihnen helfen können. – shash678

+2

Gut, um Code zu sehen, mit dem man arbeiten kann. Es sieht jedoch wie Code aus, der nicht einmal kompiliert wird. Hast du es geschafft, es zum Laufen zu bringen? Und Schritt für Schritt mit Ihrem Debugger? – dave

Antwort

1

Wenn Sie Probleme mit einem BufferedReader mit durch Zeile für Zeile gehen, könnten Sie ein Scanner stattdessen verwenden und die Datei unter der Annahme, ist nicht sehr groß Scan die gesamte Datei in eine String und split() anschließend verwenden, um ein Array aller Worte in der Datei zu erhalten:

import java.util.Scanner; 
import java.io.File; 
import java.io.FileNotFoundException; 

public class ArrayFromFile{ 
    public static void main(String []args){ 
     try (Scanner scanner = new Scanner(new File("data.txt"))) { 
      String text = scanner.useDelimiter("\\A").next(); //Get contents of file as String 
      String[] words = text.split(" "); 

      for(String word : words) //Printing out the elements in the array 
       System.out.println(word); 

     } catch (FileNotFoundException e){ 
      e.printStackTrace(); 
     } 
    } 
} 
0

ich bin nicht sicher, ob das ist, was Sie brauchen, aber in Java 8 wie dies getan werden kann: unter der Annahme, w e eine Textdatei wie folgt aussehen:

cat dog 
mouse zebra 
goat bear 
lizard carrot 
car truck 
bus bike 

wir Java-8-Streams verwenden können alle Inhalte zu bekommen und es in eine Reihe legen:

Set<String> set_text = Files.lines(Paths.get("/data2/test/data.txt")).collect(Collectors.toSet()); 

dann analysieren wir die Menge auf ein Array:

String[] arr = set_text.toArray(new String[set_text.size()]); 

for(String text : arr) 
{ 
    System.out.println(text); 
} 

wenn dies nicht das, was Sie brauchen, lassen Sie mich zu bearbeiten wissen it :)

Verwandte Themen