我的主要目的是创造类似的东西
这是我的代码
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部分)
我如何才能实现这一目标,然后再将其打印出来,如图所示。
谢谢
答案 0 :(得分:0)
在Java中,您可以在代码开始执行后创建一个数组,因此您必须打破这一行:
char [][] opt = new char [N+1][M+1];
分为两部分,第一部分现在仅用于声明:
char [][] opt;
第二部分在你得到M的长度之后就出现了:
...
M = part2.length();
opt = new char [N+1][M+1];
干杯