我有这个方法从文本文件中获取数组列表:
private ArrayList<String[]> tempList(){
String temp = null;
ArrayList<String[]> tempList = new ArrayList<String[]>();
try {
BufferedReader bReader = new BufferedReader(new InputStreamReader(getAssets().open(getFilename())));
while ((temp = bReader.readLine()) !=null){
String[] value = temp.split(",");
tempList.add(value);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return tempList;
}
文件只有用逗号分隔的字母,没有空格或空行。问题是列表的第一个字母前面有一个空格。其他字母都可以。
这里是包含本地字母表的TXT文件:
Α,Β,Γ
Δ,Ε,Ζ
Η,Θ,Ι
Κ,Λ,Μ
Ν,Ξ,Ο
Π,Ρ,Σ
Τ,Υ,Φ
Χ,Ψ,Ω
你知道怎么回事吗?
它可以是一个零宽度的空格,一个BOM, 'uFEFF'
通常用作第一个字符(由Windows下的记事本)来标记Unicode文件。所以Windows可以区分UTF-8和普通的本地ANSI。
如果在编辑过程中复制了第一行,然后进行了字符编码的转换,这就是解释。
temp = temp.replace("uFEFF", "");
一般来说,删除BOM是一个好主意。
按照@user3505725:
的建议对代码做一点改动String[] value = temp.trim().split(",");
希望这将帮助。