Как я могу прочитать многострочный текст в Java с пробелом между строками - PullRequest
0 голосов
/ 29 ноября 2018

Я хочу прочитать эти 3 строки в ArrayList of Strings, и мой код не может добавить что-то в мой ArrayList.Ввод:

1,1,1,1,0,1,1,0

0,1,1,0,0,1,1,1

1,1,1,1,1,1,1,0

Segm.java:

import java.util.*;
public class Segm 
{
    public static void main(String[] args) 
    {
        Scanner scan=new Scanner(System.in);
        ArrayList<String> s=new ArrayList();
        while(scan.hasNextLine())
        {
            String a=scan.nextLine();
            if(a.isEmpty())
            {
                scan.nextLine();
            }
            s.add(a);
        }
    }
}

Ответы [ 4 ]

0 голосов
/ 29 ноября 2018
   Scanner scan =new Scanner(System.in);
    ArrayList<String> s=new ArrayList();
    while(scan.hasNextLine())
    {
        String a=scan.nextLine();

        if(a.equals("fine"))
            break;
        if(!a.isEmpty())
        {
        s.add(a);

        }
    }
0 голосов
/ 29 ноября 2018

Я бы сделал что-то вроде:

while(scan.hasNextLine())
{
    String a=scan.nextLine();
    if( !a.isEmpty())
    {
        s.add(a);
    }
}

То есть не думайте, что есть только одна пустая строка.Приведенный выше код будет игнорировать все пустые строки.

0 голосов
/ 29 ноября 2018

Вот как бы это сделать.Игнорировать пустые строки и выйти, если пользователь вводит aq

Scanner scan = new Scanner(System.in);
ArrayList<String> strings = new ArrayList<>();
while(scan.hasNextLine()) {
    String a = scan.nextLine();
    if (a.trim().isEmpty()) {
         continue;
    }
    if (a.equalsIgnoreCase("Q")) {
        break;
    }
   strings.add(a);
}
0 голосов
/ 29 ноября 2018

Вы не назначаете переменную a снова в последующем вызове nextLine (),

String a=scan.nextLine();
if(a.isEmpty())
{
    a=scan.nextLine(); // you are doing scan.nextLine(); only and not updating a
}
s.add(a);

Кроме того, чтобы обрабатывать несколько пустых строк, вы должны рассмотреть возможность использования цикла while вместо ifБлок выписок в вашем коде

...