Loading...
Nani15 avatar Nani15 12 Точки

Problem 2. Count Substring Occurrences - Java - Text Processing and Regex API

import jdk.nashorn.internal.runtime.regexp.joni.Regex;

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

/**
 * Created by User on 5.4.2016 г..
 */
public class Pr2_Count {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        String text = scanner.nextLine().toLowerCase();
        String word = scanner.nextLine().toLowerCase();

        int counter = 0;
        Pattern pattern = Pattern.compile(word);
        Matcher matcher = pattern.matcher(text);

        while (matcher.find()) {
            counter++;
        }
        System.out.println(counter);
    }
}

Здравейте имам следния проблем със задача 2 от домашното по Джава "Text Processing and Regex API"

Write a program to find how many times given string appears in given text as substring. The text is given at the first input line. The search string is given at the second input line. The output is an integer number. Please ignore the character casing. 

Това е условието. Ясно ми е защо не ми се получава, a именоо защото, след като намери групата то продължава със стринга без да взима следващите букви като така губя възможности. Знам какъв е но нямам представа как да го оправя. Много ще се радвам ако ми помогнете. :))

 

Тагове:
0
Java Advanced
BloodAlien avatar BloodAlien 1 Точки
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class CountSubstringOccurrences {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String line = sc.nextLine();
        String key = sc.nextLine();

        String regex = key;
        Pattern pattern = Pattern.compile(key, Pattern.CASE_INSENSITIVE);
        Matcher matcher = pattern.matcher(line);

        int count = 0;
          int start = 0;
        while (matcher.find(start)) {
            count++;
              start = matcher.start() + 1;
        }

        System.out.printf("%d ", count);
    }
}
0
06/04/2016 22:49:30
EyubDjelil avatar EyubDjelil 9 Точки

Здравей колега Nani15.

Тъй като не видях отговор на въпроса ти, си поиграх и с мъка успях.

За да обходиш Stringa text с Matcher трябва да използваш метода 

public Matcher region(int start, int end);

start - The index to start searching at (inclusive)

end - The index to end searching at (exclusive)

 И ето работещ вариант на задачата ти:

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

/**
 * Created by X on 7.4.2016 г..
 */
public class ProblemTwov2 {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        String text = scanner.nextLine().toLowerCase();
        String word = scanner.nextLine().toLowerCase();

        int counter = 0;
        Pattern pattern = Pattern.compile(word);
        Matcher matcher = pattern.matcher(text);

        for (int i = 0; i < text.length() - word.length()+1; i++) {
            matcher.region(i,i+word.length());
            if (matcher.find()) {
                counter++;
            }
        }
        System.out.println(counter);
    }
}
0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.