Я пытаюсь подсчитать количество прямых повторений подстроки в строке.count непосредственно повторное появление подстроки
String s = "abcabcdabc";
String t = "abc";
int count = 2;
EDIT: , потому что некоторые люди просят, я стараюсь разъяснить это: есть 3 раза т в е, но мне нужно число раз т повторяется без какого-либо другого характера. что приведет к 2, потому что d в моем примере не является начальным символом t. ('d'! = 'a').
Другой пример разъяснить это:
String s = "fooabcabcdabc";
String t = "abc";
int count = 0;
Я знаю, как подсчитать число вхождений в строке, мне это нужно, чтобы повторять слева направо без перерыва!
Вот что я до сих пор, но я думаю, что я сделал простую ошибку в этом ...
public static int countRepeat(String s, String t){
if(s.length() == 0 || t.length() == 0){
return 0;
}
int count = 0;
if(t.length() == 1){
System.out.println(s+" | " + t);
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) != t.charAt(0)){
return count;
}
count++;
}
}else{
System.out.println(s+" | " + t);
for (int i = 0; i < s.length(); i++) {
int tchar = (i- (count*(t.length()-1)));
System.out.println(i+ " | " + tchar);
if (s.charAt(i) != t.charAt(tchar)){
return count;
}
if(tchar >= t.length()-1){
count++;
}
}
}
return count;
}
что я делаю неправильно? И есть ли лучший/более быстрый способ сделать это?
Вы знаете, '' String' имеет .indexOf() '... – fge
Я знаю, но IndexOf() возвращает первое вхождение, которое в 0. Вы можете разместить пример кода с помощью IndexOf() что на самом деле отвечает на мой вопрос? – Kostronor
Ну, 'String' также имеет' .subString() ';) Я до сих пор не понимаю, что вы подразумеваете под« подсчитываете количество прямых повторений »? – fge