如何将parseInt数组传递给以前的数组?

时间:2018-02-02 06:27:39

标签: java arrays algorithm multidimensional-array string-parsing

我被要求读取文件并将文本放在那里并将它们转换为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

我该如何做到这一点?

5 个答案:

答案 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