我想将从文件中获取的字符串转换为arraylist。我以这种方式尝试过,但没有用:

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

public class Data
{
    static File file = DataSaver.file;
    static List<String> data = new ArrayList<String>(512);
    public static void a() throws Exception
    {
        FileInputStream fis = new FileInputStream(file);
        DataInputStream dis = new DataInputStream(fis);
        BufferedReader reader = new BufferedReader(new InputStreamReader(dis));
        if(!file.exists())
        {
            throw new IOException("Datafile not found.");
        }
        else
        {
            String[] string = reader.readLine().split("$");
            for(int i = 0; i < string.length; i++)
            {
                data.add(string[i]);
            }
        }
        dis.close();
        System.out.println(data.toString()); //for debugging purposes.
    }
}

输出:[$testdata1$testdata2$]
想要的输出:[testdata1, testdata2]
档案内容:$testdata1$testdata2$
有人能帮我吗?

最佳答案

String.split采用正则表达式,而$是需要转义的特殊字符。另外,第一个字符是$,因此拆分将以空的第一个元素结束(您需要以某种方式将其删除,这是一种方法:

String[] string = reader.readLine().substring(1).split("\\$");

...要么:
String[] string = reader.readLine().split("\\$");
for (int i = 0; i < string.length; i++)
    if (!string[i].isEmpty())
        data.add(string[i]);

10-08 14:35