使用arraylist-Java的arraylist逐行读取文件
我试图创建一个方法,打开一个文件,然后逐行读取文件,无论文件的长度如何。每一行被分割成单词和标点符号(撇号除外),并存储在字符串的数组列表中。这些表示行的ArrayList存储在字符串ArrayList的ArrayList中 例如,如果文件包含使用arraylist-Java的arraylist逐行读取文件,java,arraylist,file-io,Java,Arraylist,File Io,我试图创建一个方法,打开一个文件,然后逐行读取文件,无论文件的长度如何。每一行被分割成单词和标点符号(撇号除外),并存储在字符串的数组列表中。这些表示行的ArrayList存储在字符串ArrayList的ArrayList中 例如,如果文件包含 Hello World! Hi, hello. 然后第一个数组列表将包含字符串:“Hello”、“World”和“!” 第二个数组列表将包含字符串:“Hi”、“,”和“hello”、” 到目前为止,我有以下几点,不确定我是否走在正确的方向上 publi
Hello World!
Hi, hello.
然后第一个数组列表将包含字符串:“Hello”、“World”和“!”
第二个数组列表将包含字符串:“Hi”、“,”和“hello”、”
到目前为止,我有以下几点,不确定我是否走在正确的方向上
public static void readInputFile(String fileName, ArrayList<ArrayList<String>> fileByLine)
throws IOException {
File userFile = new File(fileName);
try {
if (userFile.exists()) {
Scanner fileScanner = new Scanner(userFile);
do {
do {
fileByLine.add(fileScanner.next());
} while (fileScanner.next() != null);
} while (fileScanner.hasNext());
}
} catch (Exception e) {
System.out.println("Exception: File '" + fileName + "' not found.");
}
}
publicstaticvoidreadinputfile(字符串文件名,arraylistfilebyline)
抛出IOException{
File userFile=新文件(文件名);
试一试{
if(userFile.exists()){
Scanner fileScanner=新扫描仪(userFile);
做{
做{
add(fileScanner.next());
}while(fileScanner.next()!=null);
}while(fileScanner.hasNext());
}
}捕获(例外e){
System.out.println(“异常:文件“”+fileName+“'notfound.”);
}
}
下面的代码对我有用,你可以试试
public class ListOFList {
public static ArrayList<String> stringspecial(String strLine) {
String str = strLine;
String arr[]=str.split(" ");
ArrayList<String> list = new ArrayList<String>();
for(int i=0;i<arr.length;i++) {
Pattern pattern = Pattern.compile("[a-zA-Z0-9]*");
Matcher matcher = pattern.matcher(arr[i]);
if (!matcher.matches()) {
char[] ch = arr[i].toCharArray();
String substring="";
for(int j=0;j<ch.length;j++) {
if(!(Character.isLetter(ch[j]))) {
String special = Character.toString(ch[j]);
list.add(special);
}else {
substring=substring+ch[j];
if(!(Character.isLetter(ch[j+1]))) {
list.add(substring);
}
}
}
} else {
list.add(arr[i]);
}
}
return list;
}
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
FileInputStream fi = new FileInputStream("<Path of the Input Text File>");
BufferedReader br = new BufferedReader(new InputStreamReader(fi));
String strLine;
ArrayList<ArrayList<String>> listoflists = new ArrayList<ArrayList<String>>();
ArrayList<String> list = new ArrayList<String>();
while ((strLine = br.readLine()) != null) {
list=stringspecial(strLine);
listoflists.add(new ArrayList(list));
list.clear();
}
for(int x = 0; x < listoflists.size(); x++)
{
System.out.print(listoflists.get(x));
System.out.print(" ");
}
br.close();
}
}
公共类列表{
公共静态ArrayList stringspecial(字符串strLine){
字符串str=strLine;
字符串arr[]=str.split(“”);
ArrayList=新建ArrayList();
对于(int i=0;i),请查看该网站的工作原理、主题中的问题以及相应的问题。另请参见: