Написание основного метода для этой функции поиска

Мне нужно несколько советов о том, как написать основной метод для этой мини-поисковой системы, которую я пишу. Вот мой код:

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);
}

Для проблем с методом поиска вам нужно отладить ваш метод.

Шаги:-

  1. Если вы используете eclipse, дважды щелкните номер строки слева или щелкните правой кнопкой мыши и выберите Toggle breakpoint, где вы хотите остановить основной поток.

  2. Щелкните правой кнопкой мыши на программе и используйте Debug как опцию.

  3. Используйте клавиши F5, F6, F7 или F8 для отладки

F5 выполняет текущую выбранную строку и переходит к следующей строке в вашей программе. Если выбранная строка является методом, вызовите отладчик и перейдите в соответствующий код.

F6 переходит через вызов, то есть выполняет метод, не входя в него в отладчике.

F7 выходит к вызывающему в данный момент методу. Это завершает выполнение текущего метода и возвращает его вызывающей стороне.

F8 указывает отладчику Eclipse возобновить выполнение программного кода, пока он не достигнет следующей точки останова или точки наблюдения.

Другие вопросы по тегам