如何使用2个字符串的字符填充2d数组

时间:2013-12-12 12:18:01

标签: java dynamic-programming multidimensional-array

我的主要目的是创造类似的东西

enter image description here

这是我的代码

import java.io.*;
import java.util.Arrays;

import java.util.Scanner;

public class EditDistance {

    public static void main(String[] args) {
        int N = 0;
        int M = 0;
        // char [][] opt = new char [N+1][M+1];

        java.io.File file = new java.io.File("gene57.txt");
        try {
            Scanner input = new Scanner(file);
            while (input.hasNext()) {
                String num = input.nextLine();

                String[] parts = num.split(" ");
                String part1 = parts[0];
                N = part1.length();

                String part2 = parts[1];
                M = part2.length();

                System.out.println(part1);
                System.out.println("Number of nucleobase of Sequence 1 is=" + N);

                System.out.println(part2);
                System.out.println("Number of nucleobase of Sequence 2 is=" + M);
            }
        }

        catch (FileNotFoundException e) {
            System.err.format("File does not exist\n");
        }
        // x= n+1 , y=m+
    }
}

我目前从我的txt文件中读取2个dna序列并创建2个带有2个序列(M和N)的字符串,所以我必须创建一个M + 1和N + 1矩阵才能执行我的动态编程算法。

现在我的问题是这个

我该如何创建这个2d数组? 我的第一个维度应该使用我的第一个字符串(第1部分)的字符创建,第二个维度使用我的第二个字符串(第2部分)

我如何才能实现这一目标,然后再将其打印出来,如图所示。

谢谢

1 个答案:

答案 0 :(得分:0)

在Java中,您可以在代码开始执行后创建一个数组,因此您必须打破这一行:

char [][] opt = new char [N+1][M+1];

分为两部分,第一部分现在仅用于声明:

char [][] opt;

第二部分在你得到M的长度之后就出现了:

...
M = part2.length();
opt = new char [N+1][M+1];

干杯