String match = "hello";
String text = "0123456789hello0123456789";
int position = getPosition(match, text); // should be 10, is there such a method?
Réponses
Trop de publicités?
Aldwane Viegan
Points
481
Cela fonctionne en utilisant regex.
String text = "I love you so much";
String wordToFind = "love";
Pattern word = Pattern.compile(wordToFind);
Matcher match = word.matcher(text);
while (match.find()) {
System.out.println("Found love at index "+ match.start() +" - "+ (match.end()-1));
}
Sortie :
Trouvé 'amour' à l'index 2 - 5
Règle générale :
- Recherche Regex de gauche à droite, et une fois que les caractères correspondants ont été utilisés, ils ne peuvent pas être réutilisés.
Michael Mrozek
Points
44120
text.indexOf(match);
Voir le javadoc String
hhh
Points
4665
Vous pouvez obtenir toutes les correspondances dans un fichier simplement en attribuant à l'intérieur while-loop, cool :
$ javac MatchTest.java
$ java MatchTest
1
16
31
46
$ cat MatchTest.java
import java.util.*;
import java.io.*;
public class MatchTest {
public static void main(String[] args){
String match = "hello";
String text = "hello0123456789hello0123456789hello1234567890hello3423243423232";
int i =0;
while((i=(text.indexOf(match,i)+1))>0)
System.out.println(i);
}
}