Как я могу напечатать ниже результат в java? - PullRequest
0 голосов
/ 21 июня 2020

Я пишу java задачу для преобразования строки с результатом «qwe».

В основном программа требует создать текстовый файл с некоторыми словами. Затем программа прочитает слова в txt и многократно сгенерирует слова с помощью qwe. Если это слово abcdefg, ожидаемый результат должен быть qweqweq. Кто-нибудь может мне помочь?

import java.io.*;

public class Assignment2_1 {
    static String[] readInputFile(String filename) {
        int totalLines = 0;
        try {
            String thisLine;
            BufferedReader reader = new BufferedReader(new FileReader(filename));

            while ((thisLine = reader.readLine()) !=null){
                totalLines++;
            }

            reader.close();

        } catch (Exception e) {
            System.out.println("File problem with" +filename);
            System.exit(0);
        }

        String[] strArray = new String[totalLines];
        try {
            BufferedReader reader = new BufferedReader(new
                    FileReader(filename));
            for (int i=0; i < totalLines; i++) {
                strArray[i] = reader.readLine();
            }

            reader.close();

        } catch (Exception e) {
            System.out.println("File problem with" +filename);
            System.exit(0);
        }

        return strArray;
    }

    public static void main(String[] args)
    {
        if (args.length != 1) {
            System.out.println("Please provide a filename!\n");
            System.exit(0);
        }

        String[] strArray = {"q","w","e"};
        for (int i = 0; i <strArray.length; i++) {
            System.out.println(strArray[i]);
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 21 июня 2020

Вы также можете использовать Stream API.

static String[] strArray={"q","w","e"};
int count=0;
public static void main(String[] args){
    if (args.length != 1) {
        System.out.println("Please provide a filename!\n");
        System.exit(0);
    }
    String[] lines=readInputFile(args[0]);
    Stream.of(lines).forEach(s->{
        for(int j=0;j<s.length();j++){
            System.out.print(strArray[count%3]);
            count++;
        }
        System.out.print("\r\n");
    }
}
0 голосов
/ 21 июня 2020

Вы никогда не вызываете метод readInputFile(String) в методе main(String[]). Вы можете попробовать использовать этот код:

public static void main(String[] args){
    if (args.length != 1) {
        System.out.println("Please provide a filename!\n");
        System.exit(0);
    }
    String[] lines=readInputFile(args[0]);
    String[] strArray={"q","w","e"};
    int count=0;
    for(int i=0;i<lines.length;i++){
        for(int j=0;j<lines[i].length();j++){
            System.out.print(strArray[count%3]);
            count++;
        }
        System.out.print("\r\n");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...