Java 如何检索以逗号作为分隔符的空格行?
我的game.txt文件中有此记录Java 如何检索以逗号作为分隔符的空格行?,java,android,Java,Android,我的game.txt文件中有此记录 menard,menard mabunga,0 francis,francis mabunga,0 angelica,francis mabunga,1 我使用此代码访问文件并将其存储在数组列表中 Scanner s = new Scanner(getResources().openRawResource(R.raw.game)); ArrayList<String> list = new ArrayList<Strin
menard,menard mabunga,0
francis,francis mabunga,0
angelica,francis mabunga,1
我使用此代码访问文件并将其存储在数组列表中
Scanner s = new Scanner(getResources().openRawResource(R.raw.game));
ArrayList<String> list = new ArrayList<String>();
while (s.hasNext()){
list.add(s.next());
}
s.close();
当我尝试使用System.out.println(randomLine(list))打印randomLine函数的结果时代码>输出仅为mabunga,0
现在,如何检索以逗号作为分隔符的空格行?您应该实例化Random ony一次,并存储对它的引用。否则,nextInt()。使用nextLine()
而不是next()
。因此,这应该是您的代码:
Scanner s = new Scanner(getResources().openRawResource(R.raw.game));
ArrayList<String> list = new ArrayList<String>();
while (s.hasNext()){
list.add(s.nextLine()); // Change here!!
}
s.close();
Scanner s=new Scanner(getResources().openRawResource(R.raw.game));
ArrayList=新建ArrayList();
而(s.hasNext()){
list.add(s.nextLine());//在此处更改!!
}
s、 close();
如果目标是读取行,我更喜欢BufferedReader
而不是Scanner
。使用字符串标记器
(或者流标记器
,如果您想在读取文件时将它们分开)。将分隔符设置为“,”。那你应该没事了
在randomLine函数中,请使用以下代码,而不是您的代码:
public static String randomLine(ArrayList list) {
return (String) list.get((int)(Math.Random()*list.size()));
}
谢谢@martjin,后续问题。。。如何排除值为1的行?使用以下命令:String line=s.nextLine();如果(!line.endsWith(“1”))列表。添加(行)代码>
public static String randomLine(ArrayList list) {
return (String) list.get((int)(Math.Random()*list.size()));
}