Чтение букв по строкам - PullRequest
0 голосов
/ 07 мая 2020

Прямо сейчас у меня есть этот код, который читает строки текстового документа. Я пытаюсь добавить код, который заставит программу печатать только те строки текста, которые начинаются с буквы C и A. Может ли кто-нибудь мне помочь?

import java.io.*;
import java.util.*;
public class FileTester
{
    public static void main(String args[]) throws IOException
    {
        Scanner sf = new Scanner(new File("amazinggrace.txt"));
        int maxIndx = -1;
        String text[] = new String[1000];

        while(sf.hasNext( ))
        {
            maxIndx++;
            text[maxIndx] = sf.nextLine( ) ;
        }
        sf.close( );
        {
            System.out.println( text[j] );
        }
    }
}

Ответы [ 3 ]

1 голос
/ 07 мая 2020

При чтении и / или записи в файлы рекомендуется закрывать ресурсы по окончании обработки. Вы можете прочитать больше об этом здесь: https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html

См. Мой пример:

public static void main(String[] args) {

    List<String> text = new ArrayList<>();

    File file = new File("amazinggrace.txt");

    try (FileReader fileReader = new FileReader(file);
         BufferedReader bufferedReader = new BufferedReader(fileReader)){

        String line = bufferedReader.readLine();

        while (line != null)
        {
            if (line.startsWith("A") || line.startsWith("C")) {
                text.add(line);
            }

            line = bufferedReader.readLine();
        }
    } catch (FileNotFoundException e) {
        System.out.println("Unable to open file, file not found.");
    } catch (IOException e) {
        System.out.println("Unable to read file." + file.getName());

    }
1 голос
/ 07 мая 2020

Вы можете использовать метод String.startsWith() внутри while l oop, который у вас есть, чтобы проверить, начинается ли строка с определенного c символа / символов, а затем использовать System.out.println() для печати строки, как вы сделать позже в коде.

Вы можете найти документацию для String.startsWith() здесь: https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#startsWith (java .lang.String)

0 голосов
/ 07 мая 2020

Попробуйте использовать список, поскольку вы не можете предсказать, сколько строк вы добавите к результату. Проверьте следующий код

import java.io.*;
import java.util.*;

public class FileTester {
    public static void main(String args[]) throws IOException {
        Scanner sf = new Scanner(new File("amazinggrace.txt"));
        List<String> text = new ArrayList<>();

        while (sf.hasNextLine()) {
            String current = sf.nextLine();
            if(current.startsWith("C") || current.startsWith("A"))
                text.add(current);
        }
        sf.close();
        System.out.println(text);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...