Как прочитать текстовый файл в массиве, а затем распечатать в консоли какое-то значение в Java?

У меня проблема. У меня есть txt-файл с некоторым значением, и я пытаюсь использовать eclipse для чтения и анализа этого txt-файла в массиве, а затем поставить какое-то условие для записи этого массива в консоли. Текст, который я использую для чтения txt файла и анализа в массиве, следующий:

public void Transaction(String filepath, String user)
{
    String [] [] myArray = new String[100][3];

    Scanner scanIn = null;
    int Rowc = 0, Colc = 0;
    String InputLine = "";
    double xnum = 0;
    String username, tranzactie, info;
    try
    {
        scanIn = new Scanner ( new BufferedReader(new FileReader(filepath)));           
        while(scanIn.hasNextLine())
        {


            InputLine = scanIn.nextLine();
            String[] InArray = InputLine.split(",");
            for(int x = 0; x<InArray.length; x++)
            {
                myArray[Rowc][x] = InArray[x];
            }
            Rowc++;

        }

        for (int i = 0; i<Rowc; i++)
        {
            for (Colc = 0; Colc < 3; ColC++)
            {   

                System.out.print(myArray[i][Colc]+ ",");

            }
            System.out.println();
        }

    }catch (Exception e)
    {
        System.out.println("Error");
    }
}

Файл txt выглядит так:

John,SoldInterogation
John,PayInvoice,He pay 30 EUR
Alex,PayInvoice,He pay 15 EUR
Alex,BankTransfer,He transfered 50 EUR
John,SoldInterogation

Как мне написать в консоли только транзакцию для Джона или Алекса, или ... Что я должен добавить в свой Java-код для этого? Я должен записать только транзакцию, это означает, что только 2 столбца текстового файла, пользователь (Джон, Алекс) не должен писать в консоли.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
72
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Просто проверьте, имеет ли InArray длину 3, и если это так: добавьте две последние строки в переменную String. Затем просто распечатайте эту строковую переменную после циклов чтения.

try
{
    // A String variable to println after the reading.
    String consoleResume = "";
    scanIn = new Scanner ( new BufferedReader(new FileReader(filepath)));           
    while(scanIn.hasNextLine())
    {


        InputLine = scanIn.nextLine();
        String[] InArray = InputLine.split(",");
        for(int x = 0; x<InArray.length; x++)
        {
            myArray[Rowc][x] = InArray[x];
        }
        // There is a transaction when you have 3 strings in InArray
        if (InArray.length()==3)
            consoleResume+=InArray[1]+":"+InArray[2]+"\n"; 
        Rowc++;

    }
    System.out.println(consoleResume);

}catch (Exception e)
{
    System.out.println("Error");
}

Вы также можете распечатать транзакции внутри вашего цикла:

    try
{
    scanIn = new Scanner ( new BufferedReader(new FileReader(filepath)));           
    while(scanIn.hasNextLine())
    {


        InputLine = scanIn.nextLine();
        String[] InArray = InputLine.split(",");
        for(int x = 0; x<InArray.length; x++)
        {
            myArray[Rowc][x] = InArray[x];
        }
        // There is a transaction when you have 3 strings in inArray
        if (InArray.length()==3)
            System.out.println(InArray[1]+":"+InArray[2]); 
        Rowc++;

    }


}catch (Exception e)
{
    System.out.println("Error");
}

Другие вопросы по теме