Playdowin
Playdowin

Reputation: 94

Read from txt file - Save when a line-break occurs

I want to read from .txt file, but I want to save each string when an empty line occurs, for instance:

All
Of
This
Is
One
String

But
Here
Is A
Second One

Every word from All to String will be saved as one String, while every word from But and forward will be saved as another. This is my current code:

public static String getFile(String namn) {
    String userHomeFolder = System.getProperty("user.home");
    String filnamn = userHomeFolder + "/Desktop/" + namn + ".txt";
    int counter = 0;
    Scanner inFil = new Scanner(new File(filnamn));
    while (inFil.hasNext()) {
        String fråga = inFil.next();
        question.add(fråga);
    }
    inFil.close();

}

What and how should I adjust it? Currently, it saves each line as a single String. Thanks in advance.

Upvotes: 1

Views: 102

Answers (1)

zubergu
zubergu

Reputation: 3706

I assume your question is regarding java.
As you can see I changed return type of your method to List because returning single String doesn't make sense when splitting full text into multiple Strings.
I also don't know what question variable so I switched it with allParts being list of sentences separated by empty line(variable part).

public static List<String> getFile(String namn) throws FileNotFoundException {
    String userHomeFolder = System.getProperty("user.home");
    String filnamn = userHomeFolder + "/Desktop/" + namn + ".txt";
    int counter = 0;

    // this list will keep all sentence
    List<String> allParts = new ArrayList<String>(); s

    Scanner inFil = new Scanner(new File(filnamn));

    // part keeps single sentence temporarily
    String part = "";
    while (inFil.hasNextLine()) { 
        String fråga = inFil.nextLine(); //reads next line
        if(!fråga.equals("")) {       // if line is not empty then
                part += " " + fråga;      // add it to current sentence
            } else {                  // else     
                allParts.add(part);       // save current sentence
                part = "";                // clear temporary sentence
            }

        }
        inFil.close();
        return allParts;

    }

Upvotes: 1

Related Questions