编程语言
首页 > 编程语言> > java-如何将记事本中的字符串文本逐行转换为数组?

java-如何将记事本中的字符串文本逐行转换为数组?

作者:互联网

我是编程的初学者.我目前正在学习如何将记事本中的文本逐行转换为数组.记事本中的文本实例,

I am a high school student
I love banana and chicken
I have 2 dogs and 3 cats

等等..

在这种情况下,数组[1]将为字符串“我爱香蕉和鸡肉”.
记事本中的行可以更新,我希望数组是动态/灵活的.我尝试使用扫描仪识别每行,并尝试将它们传输到数组.请参考我的代码:

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

class Test
{
    public static void main(String[] args)
        throws Exception
    {
        File file = new File("notepad.txt");     
        Scanner scanner = new Scanner(file);  
        String line;
        int i = 0;
        int j = 0;

        while (scanner.hasNextLine()) {
            i++;
        }

        String[] stringArray = new String[i];

        while (scanner.hasNextLine()) {
            line = scanner.nextLine();
            stringArray[j] = line;
            j++;
        }

        System.out.println(stringArray[2]);

        scanner.close();
    }
}

我不确定为什么会有运行时错误,我尝试了另一种方法,但是仍然没有产生我想要的结果.

解决方法:

您可以简单地通过创建ArrayList并将其转换为String Array来实现.

这是一个示例代码,可以帮助您入门:

public static void main(String[] args) throws FileNotFoundException {
    Scanner in = new Scanner(new File("notepad.txt"));
    List<String> outputList = new ArrayList<>();

    String input = null;
    while (in.hasNextLine() && null != (input = in.nextLine())) {
        outputList.add(input);
    }

    String[] outputArray = new String[outputList.size()];
    outputArray = outputList.toArray(outputArray);

    in.close();
}

标签:java-util-scanner,file,arrays,string,java
来源: https://codeday.me/bug/20191026/1936024.html