我在存储文件中的值时遇到问题。
3
10 2
100 35
5 4
17 20 3 5
6 10
6 9 12 15 18 21 24 27 30 33
我希望将第一行存储为整数,将其他行存储为多个值作为单独的int数组。
BufferedReader br = null;
try {
String sCurrentLine;
br = new BufferedReader(new FileReader("candy.dat"));
while ((sCurrentLine = br.readLine()) != null) {
System.out.println(sCurrentLine);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
还有其他办法吗?感谢
编辑:基本上第一个整数(在本例中为3)将表示要遵循的测试用例数。每个测试用例后面都会有两行。所以第一个测试用例是[10,2] [100,35]。
EDIT2:如果有人在想,我设法解决了我的问题。 这是我的代码
Scanner sc = new Scanner(new File("candy.dat"));
String testCase = sc.nextLine();
String[] numOfCandy = new String[0];
String[] NK = new String[0];
for (int i = 0; i < Integer.parseInt(testCase); i++) {
System.out.println("test case " + (i+1));
NK = sc.nextLine().split(" ");
numOfCandy = sc.nextLine().split(" ");
//System.out.println(NK[0] + " " + NK[1]);
//System.out.println(numOfCandy[0] + " " + numOfCandy[1]);
find(NK[0], NK[1], numOfCandy); //method to solve problem
}
我首先存储了testcase值,即3,告诉for循环运行多少次。
我实例化了2个String数组供以后使用。
在for循环中,我读取下一行并将其拆分为存储到字符串数组NK中,然后将其存储到numOfCandy中。
从那里,我能够成功地从数组中检索数据来解决我的问题。
答案 0 :(得分:0)
回答,现在,没有时间,没有大脑......很酷的态度:`
public static void main() throws Exception {
final Scanner scanner = new Scanner(new File(file_str));
while (scanner.hasNextLine()) {
if (scanner.hasNextInt()) {
final int nb = scanner.nextInt();
System.err.println(nb);
final String[] str = scanner.findInLine(".*").split(" ");
System.err.println("-----" + str);
}
}
System.err.println("END");
scanner.close();
}