我被要求读取文件并将文本放在那里并将它们转换为2d数组。由于Eclipse很痛苦并且不会打开/读取我的文本文件,因此我在使用单独初始化的2d数组的类中进行了测试。我的问题是我不知道把parseInt的数组放回到新数组中。或者如何使用它来形成一个新的2d数组。这是我的代码: public static void main(String [] args){
class RedirectIfAuthenticated
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null $guard
* @return mixed
*/
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
return redirect('/');
}
return $next($request);
}
}
我想生成一个如下所示的数组:
-1 2 3 0
-1 3 4 0
-1 3 -4 0
-1 -3 4 0
我该如何做到这一点?
答案 0 :(得分:1)
您必须向数组formula
添加项目。只需在此处添加formula[count] = line;
:
for (int i = 0; i < charArray.length; i++) {
String numAsStr = charArray[i];
line[i] = Integer.parseInt(numAsStr);
formula[count] = line;
}
,输出为:
[[-1, 2, 3, 0]
[-1, 3, 4, 0]
[-1, 3, -4, 0]
[-1, -3, 4, 0]]
如果有效,请选择答案!
答案 1 :(得分:1)
更改formula
的定义,如下所示:
int[][] formula = new int[tester.length][];
您希望公式与测试人员具有相同的行数,对吗?
同时将while
循环更改为循环,直到tester.length
而不是常量4:
while (counter < tester.length)
现在,在for
循环开始实际业务开始之后:
for (int i = 0; i < charArray.length; i++) {
String numAsStr = charArray[i];
line[i] = Integer.parseInt(numAsStr);
}
formula[row] = line; // <------------
在for循环期间,您已经解析了测试仪的一行中的所有整数。现在是时候将整行行放入formula
了,不是吗?
答案 2 :(得分:1)
How to read a large text file line by line using Java? Java file to 2D array
-1 2 3 0
-1 3 4 0
-1 3 -4 0
-1 -3 4 0
演示
import java.io.File;
import java.util.Arrays;
import java.util.Scanner;
import java.io.IOException;
public class MyFile {
public static void main(String[] args) throws IOException {
File file = new File("myFile.txt"); // read file name
Scanner scan = null;
int[][] myArray = new int[4][4]; // how many?
String line = null; // line in .txt
String[] token = null; // number token
try {
scan = new Scanner(file);
while (scan.hasNextLine()) {
for (int i = 0; i < 4; i++) { // loop thru row
line = scan.nextLine(); // scan line
token = line.split(" ");
for (int j = 0; j < 4; j++) {
myArray[i][j] = Integer.parseInt(token[j]);// loop thru col & parse token int
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
scan.close();
System.out.println(Arrays.deepToString(myArray)); //fix this
}
}
答案 3 :(得分:1)
我建议您使用List来存储数组,然后它可以轻松转换为int [] [] ......
WxEntryActivity
请注意,如果必须将它拆分为多个正则表达式模式,则必须为每一行使用平面图。
答案 4 :(得分:0)
在<{strong> formula[row] = line;
循环
for