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