我需要一些关于如何为我编写的迷你搜索引擎编写主要方法的指针。这是我的代码:
public class StringSearch {
private String s1 = "ACTGACGCAG";
private String s2 = "TCACAACGGG";
private String s3 = "GAGTCCAGTT";
public static void main(String[] args) {
System.out.println("Welcome! The strings you started with are:\n" + s1 + "\n" + s2 + "\n" + s3);
}
public void search() {
do {
for(int i = 0; i < s1.length() - 4; i++) {
int d = 0;
String subStr = s1.substring(0 + i, 4 + i);
do{
for (int iSub = 0; iSub < 4; i++){
if (subStr.charAt(iSub) != (subStr.charAt(iSub))) {
d += 1;
}
}
}while(d < 2);
if(s2.contains(subStr) && s3.contains(subStr)) {
System.out.println(subStr + "is in all 3 lists.");
}
}
}while (s1.length() - 4 < 6);
System.out.println("Task Complete.");
}
}
我的想法是我开始使用一组3个字符串,我需要创建一个包含4个字符的子字符串,并将其与所有3个字符串进行比较,以查看它是否包含在每个字符串中至少3个字符串/ 4个字母匹配。例如,如果我取s1(ACTG)的前4个字符,那么&#39; CCTG&#39;,&#39; ACAG&#39;,&#39; ACTA&#39;,&#39; AATG&# 39;都将是有效的搜索结果,并将被退回。
我遇到的问题是主要方法。我究竟应该如何在语法上实例化搜索方法?我试过StringSearch s1 = new StringSearch();然后是s1.search();但没有得到任何结果。此外,当我尝试在println中引用原始字符串时,它表示我无法从静态上下文中引用它们。这里的Java新手,将非常感谢具体的帮助。
答案 0 :(得分:0)
您不能直接在静态方法中引用字段。首先,你需要像这样创建一个对象: -
public static void main(String[] args) {
StringSearch stringSearch = new StringSearch();
stringSearch.search();
System.out.println("Welcome! The strings you started with are:\n" + stringSearch.s1 + "\n" + stringSearch.s2 + "\n" + stringSearch.s3);
}
对于搜索方法的问题,您需要调试方法。
步骤: -
如果您正在使用eclipse,请双击左侧的行号或右键单击并选择切换断点以了解主线程停止的位置。
右键单击程序并使用Debug作为选项。
F5执行当前选定的行并转到程序中的下一行。如果所选行是方法调用,则调试器将进入相关代码。
F6逐步调用,即它执行一个方法而不在调试器中插入它。
F7走出当前执行方法的调用者。这样就完成了当前方法的执行并返回给这个方法的调用者。
F8告诉Eclipse调试器恢复程序代码的执行,直到到达下一个断点或观察点。