当我知道我的文件包含
时,如何将包含空格的文本文件读入int数组" 22 23 29 1"
等
private String readFromFile() {
String ret = "";
try {
InputStream inputStream = openFileInput("mywords.txt");
if ( inputStream != null ) {
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String receiveString = "";
StringBuilder stringBuilder = new StringBuilder();
while ( (receiveString = bufferedReader.readLine()) != null ) {
stringBuilder.append(receiveString);
}
inputStream.close();
ret = stringBuilder.toString();
}
}
catch (FileNotFoundException e) {
Log.e("login activity", "File not found: " + e.toString());
} catch (IOException e) {
Log.e("login activity", "Can not read file: " + e.toString());
}
return ret;
}
我用它来读到现在
答案 0 :(得分:3)
对于"22 23 29 1 "
,即带有空格的整数,请尝试以下代码:
String ret="22 23 29 1 ";
ret=ret.trim();
String tok[]=ret.split(" ");
for(String s:tok) {
System.out.println(s);
}
输出
22
23
29
1
如果您需要,可以使用string
将integer
解析为Integer.parseInt()
。
答案 1 :(得分:1)
您也可以使用Scanner
。
Scanner scanner = new Scanner(inputStream).useDelimiter(" ");
并且您可以使用hasNext()
和next()
等功能来检查和阅读下一个单词。
您可以做的是创建ArrayList
Integers
并在next()
进行解析。
类似的东西(这只是一个伪代码)
ArrayList<Integer> list = new ArrayList<Integer>();
while(scanner.hasNext()) {
read = scanner.next();
list.add(Integer.parseInt(read));
}
return list;
答案 2 :(得分:0)
在返回的String上调用split(" ")
,您将获得String数组。根据您的使用情况进行Typecast。