我必须做的任务是将包含“int”的文件中的行存储到字符串数组中。该文件的内容是
#include<stdio.h>
#include<conio.h>
void main()
{
int i=5;
int j=9;
int s,t;
s=i+3;
t=j+7;
q=j+4;
cout<<s<<t<<q;
}
但是在运行以下代码后,而不是在其中包含3个int语句。编译器只显示最后一个int行。如何存储早期的行?
import java.io.File;
import java.util.Scanner;
import java.lang.*;
public class ReadFile {
public static void main(String[] args) {
int i=0;
String[] myStringArray = new String[]{ };
try {
Scanner input = new Scanner(System.in);
File file = new File("123.txt");
input = new Scanner(file);
while (input.hasNextLine()) {
String line = input.nextLine();
if(line.contains("int")){
myStringArray=line.split("[\\s,;]+");
}
}
for(String a :myStringArray){
System.out.println(a);
}
input.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
答案 0 :(得分:0)
myStringArray=line.split("[\\s,;]+");
你在那里替换整个数组。
答案 1 :(得分:0)
myStringArray = ArrayUtils.addAll(myStringArray,line.split("[\\s,;]+"));
您需要将下一个找到的'int'连接到myStringArray
的末尾。对于循环的每次交互,您的代码都将覆盖myStringArray
。