我正在学习核心java。下面是一个程序,它比较两个字符串并将它们放在一个整数矩阵中,直观地显示是否有任何匹配的字符。程序的下一个补充是使用矩阵结果等找出最长的公共字符串。在我继续之前想要确保程序遵循OO概念。我把它作为一个单独的程序编写,并能够分离打印和放大将矩阵指定为两种方法。我错过了什么,或者我怎么能做到这个更清洁?
import java.util.*;
public class math{
public static void main(String[] args){
math mymath = new math();
System.out.println("Which first string: " );
Scanner urspip = new Scanner(System.in);
String a = urspip.nextLine();
char[] aarray = a.toCharArray();
System.out.println("Which first string: " );
String b = urspip.nextLine();
char[] barray = b.toCharArray();
urspip.close();
int lettermatch[][] = new int[a.length()][b.length()];
System.out.println("Set & print The matrix");
mymath.setMatrix(a, b, lettermatch, aarray, barray);
mymath.getMatrix(a, b, lettermatch);
}//end main
public void getMatrix(String a,String b,int lettermatch[][]){
for(int c=0;c<a.length();c++){
for(int d=0;d<b.length();d++){
System.out.print(lettermatch[c][d]);
}
System.out.println(" ");
}
}
public void setMatrix(String a,String b,int lettermatch[][],char[] aarray,char[] barray){
for(int c=0;c<a.length();c++){
for(int d=0;d<b.length();d++){
if (aarray[c] == barray[d]){
lettermatch[c][d] = 1;
}
else{
lettermatch[c][d] = 0;
}
}
}
}
}//class
执行如下:
Which first string:
cub
Which first string:
pub
Set & print The matrix
000
010
001
请忽略打印报表中的内容。