使用java将String []转换为Arraylist <String>

Rhe*_*eel 3 java string arraylist

我想将从文件中获取的字符串转换为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.
    }
}
Run Code Online (Sandbox Code Playgroud)

输出继电器: [$testdata1$testdata2$]

通缉输出: [testdata1, testdata2]

文件内容: $testdata1$testdata2$

有人能帮我吗?

dac*_*cwe 6

String.split采用正则表达式,$是一个需要转义的特殊字符.此外,第一个字符是一个$如此分裂将最终与一个空的第一个元素(你需要以某种方式删除它,这是一种方式:

String[] string = reader.readLine().substring(1).split("\\$");
Run Code Online (Sandbox Code Playgroud)

...要么:

String[] string = reader.readLine().split("\\$");
for (int i = 0; i < string.length; i++)
    if (!string[i].isEmpty())
        data.add(string[i]);
Run Code Online (Sandbox Code Playgroud)