Найти символ из строки - PullRequest
1 голос
/ 16 апреля 2020

Я начинаю с JAVA.

У меня есть STRING String text = "un essai de méthode"; // этот текст может быть изменен пользователем И у меня есть ключевое слово String key = "de"; // это ключевое слово также может быть изменено пользователем

Как мы видим, ключевое слово «de» присутствует в тексте дважды: «un essai de métho de » И мне нужно посчитать, сколько раз ключевое слово повторяется в тексте.

int j = 0;
        int nbCharKey, nbCharText;
        int count = 0;
        int c;

        String text = "un essai de méthode do"; /*here is my text */
        String key = "de"; /*here is my key word */

        text = text.replaceAll(" ",""); /*i ignored all the spaces*/

        nbCharText = text.length(); /* length of my text to create a ARRAY */
        Character[] tabTEXT = new Character[nbCharText]; /*creating ARRAY for text */
        for (int a = 0; a < nbCharText; a++){ 
            tabTEXT[a]=text.charAt(a); /*adding the text into ARRAY*/
        }

        nbCharKey = key.length(); /* length of my key word to create a ARRAY */
        Character[] tabKEY = new Character[nbCharKey]; /*creating ARRAY for key word */
        for (int b = 0; b < nbCharKey; b++){
            tabKEY[b] = key.charAt(b); /*adding my key word into ARRAY*/
        }

        int verif = 0; /*helps to count nb times the 1st char of key word repeats*/

        char fKey = tabKEY[0];
        for (int d = 0; d < nbCharText; d++){

            if (fKey==tabTEXT[d]){
               verif++; /*the 1st key letter "d" is found twice*/
            }

            //I DO NOT KNOW HOW TO CONTINUE THE REST
            //I DO NOT KNOW HOW TO CONTINUE THE REST
            //I DO NOT KNOW HOW TO CONTINUE THE REST
            //I DO NOT KNOW HOW TO CONTINUE THE REST
            if (fKey==tabTEXT[d]){
                Character[] word = new Character[nbCharKey];

                for(int e = 0; e<nbCharKey; e++){
                    word[e]=tabTEXT[d];
                    //System.out.println(nbCharKey);
                    System.out.println(word[e]);
                    d++;

                }
            }

Пожалуйста, помогите мне.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 16 апреля 2020
 String text = "un essai de méthode";
        char[] charArrayText = text.toCharArray();

        String key = "de";
        char[] charArrayKey = key.toCharArray();

        int count = 0;
        boolean check = true;
        for (int i = 0; i < charArrayText.length; i++) {
            for (int j = 0; j < charArrayKey.length; j++) {
                if (charArrayText[i + j] != charArrayKey[j] || i == charArrayText.length - 1) {
                    check = false;
                    break;
                }
            }
            if (check) {
                count++;
            }
            check = true;
        }

        System.out.println(count);
0 голосов
/ 16 апреля 2020

вы можете выполнить поиск по регулярному выражению, импортируя эти:

import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

, затем вы можете использовать шаблон

Pattern pattern = Pattern.compile(Pattern.quote("de")); 
Matcher matcher = pattern.matcher("un essai de méthode do"); 

для шаблона, который вы ищете (используйте регулярное выражение)

чтобы получить соответствующий счет, вы можете использовать

matcher.groupCount()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...