Arraylist<String>Ein Wort pro Zeile

Förster

Mitglied
Hallo ihr Lieben,
ich stehe momentan auf dem Schlauch und komm echt nicht weiter. Ich möchte das der Text einer txt Datei statt wie hier Zeilenweise, Wörterweise in die Arraylist gegeben wird:
Java:
public class Logic {

    List<String> textLines = new ArrayList<String>();
    int lineCount;

    public int readLines(String userInputFileName) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(userInputFileName), "UTF-8"));
        String line = null;
        while ((line = reader.readLine()) != null) {
            lineCount++;
            String[] lineWord = line.split(" ");
        System.out.println(Arrays.toString(lineWord));
         //   textLines.add(lineWord);
        }
        reader.close();
        textLines.toArray(new String[textLines.size()]);
        return lineCount;
    }

Also Gesamt ziel ist es ein bestimmtes Wort in dem Text nach der Anzahl wie oft es vor kommt zu prüfen, zusätzlich wie viel Wörter und Zeilen gesamt im Text vorhanden sind.
Ich danke im voraus für eure Hilfe!
 
Java:
Arrays.toString(lineWord)
Das erstellt eine Standarddarstellung der Inhalte des Arrays. Wenn du was anderes willst, musst du das selbst programmieren.

Für dein Ziel brauchst du das aber nicht. Da genügt die Information, wie lang das Array ist.
 
Java:
public class Main
{
    public static void main(String[] args) {
        String line = "Hallo du schöne neue Welt";
       
        for (String word : line.split(" ")) { // sog. "enhanced for-loop" oder "for-each-loop"
            System.out.println(word);
        }
       
    }
}
 
Hab mal ein bisschen was ausprobiert und jetzt funktionierts auch nach meinen vorstellungen. Die enhanced for schleife von @temi hat zwar auch funktioniert aber so passts auch, ich danke euch für den Gedanken anstoß.

Java:
public class Logic {

    List<String> textWords = new ArrayList<String>();
    int lineCount;

    public int readLines(String userInputFileName) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(userInputFileName), "UTF-8"));
        String line = null;
        while ((line = reader.readLine()) != null) {
            lineCount++;
            String split[] =  line.split(" ");
            for (int i = 0; i < split.length; i++) {
                textWords.add(split[i]);
            }
        }
    for (int i = 0; i < textWords.size(); i++) {
    System.out.println(textWords.get(i));
    }
        reader.close();
        return lineCount;
    }

ist zwar noch nicht ganz fertig aber das ist ja auch nur ein kleiner Ausschnitt meines Programmes. 😀
 
Nur ein kleiner Gedanke, falls du experimentieren willst: Falls dich nur interessiert, wie viele Worte es in deiner Zeile gibt, dann kannst du das auch kostengünstiger machen als durch ein Split. Zähle einfach die Leerzeichen, vor denen was anderes als ein Leerzeichen stand. Dann noch den Sonderfall behandeln, ob der String mit Leerzeichen endet und das war's.
 

Zurück
Oben