【发布时间】:2015-03-11 11:31:51
【问题描述】:
我一直在用这个;一种单线:
public static String[] ReadFileToStringArray(String ReadThisFile) throws FileNotFoundException{
return (new Scanner( new File(ReadThisFile) ).useDelimiter("\\A").next()).split("[\\r\\n]+");
}
读取具有此类内容的文件(即带有字符串标记):
abcd
abbd
数据库光盘
但是,现在我的文件内容是这样的:
1 2 3 4
1 2 2 4
1 5 3 7
1 7 3 8
我希望将这些值读取为整数。
我尝试了以下方法但失败了:
public static int[][] ReadFileToMatrix(String ReadThisFile) throws FileNotFoundException{
return (new Scanner( new File(ReadThisFile) ).useDelimiter("\\A").nextInt()).split("[\\r\\n]+");
}
错误消息: 无法在基本类型 int 上调用 split(String)。 我理解该消息并且知道它非常错误:)
任何人都可以提出正确的方法来实现这一点。
附:恕我直言,对带有循环的解决方案说“不”。
【问题讨论】:
-
很容易将数字读取为
ints 并将它们存储在一维数组中。但是我想不出没有循环将一维数组转换为二维的方法。或者至少是递归.. -
根据 Java 约定,变量 (
readThisFile) 和方法名 (readFileToMatrix) 以小写字母开头。 -
您可以在 Google 上搜索“Java 命名约定”,但这里有一个简短的说明:en.wikipedia.org/wiki/Naming_convention_%28programming%29#Java
标签: java arrays string int java.util.scanner