Написание основного метода для этой функции поиска
Мне нужно несколько советов о том, как написать основной метод для этой мини-поисковой системы, которую я пишу. Вот мой код:
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 букв. Например, если я возьму первые 4 символа s1 (ACTG), тогда "CCTG", "ACAG", "ACTA", "AATG" будут действительными результатами поиска и будут возвращены.
Проблема у меня в основном методе. Как именно я должен создать метод поиска синтаксически? Я попробовал StringSearch s1 = new StringSearch(); а затем s1.search(); но не получил никаких результатов. Также, когда я пытаюсь сослаться на исходные строки в println, он говорит, что не может ссылаться на них из статического контекста. Ява новичок здесь, конкретная помощь будет принята с благодарностью.
1 ответ
Вы не можете ссылаться на поля напрямую в статических методах. Сначала вам нужно создать объект из этого:
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, дважды щелкните номер строки слева или щелкните правой кнопкой мыши и выберите Toggle breakpoint, где вы хотите остановить основной поток.
Щелкните правой кнопкой мыши на программе и используйте Debug как опцию.
- Используйте клавиши F5, F6, F7 или F8 для отладки
F5 выполняет текущую выбранную строку и переходит к следующей строке в вашей программе. Если выбранная строка является методом, вызовите отладчик и перейдите в соответствующий код.
F6 переходит через вызов, то есть выполняет метод, не входя в него в отладчике.
F7 выходит к вызывающему в данный момент методу. Это завершает выполнение текущего метода и возвращает его вызывающей стороне.
F8 указывает отладчику Eclipse возобновить выполнение программного кода, пока он не достигнет следующей точки останова или точки наблюдения.