Jak możemy sprawdzić dowolny ciąg znaków zawierający dowolne znaki, jak może czas .... przykład: inżynieria jest ciągiem zawiera ile razy „g ' w kompletnym ciągiemsprawdzić, ile razy ciąg zawiera znak „g” w kwalifikujących ciąg
Odpowiedz
użyj regex [g]
znaleźć char i policzyć wyniki jak poniżej:
Pattern pattern = Pattern.compile("[g]");
Matcher matcher = pattern.matcher("engineering");
int countCharacter = 0;
while(matcher.find()) {
countCharacter++;
}
System.out.println(countCharacter);
Jeśli chcesz wielkość liter ma znaczenie liczby, należy użyć wyrażenia regularnego jak [gG]
w wzorca .
chciałbym użyć Pattern
i Matcher
:
String string = "engineering";
Pattern pattern = Pattern.compile("([gG])"); //case insensitive, use [g] for only lower
Matcher matcher = pattern.matcher(string);
int count = 0;
while (matcher.find()) count++;
Można spróbować następujących czynności:
String str = "engineering";
int letterCount = 0;
int index = -1;
while((index = str.indexOf('g', index+1)) > 0)
letterCount++;
System.out.println("Letter Count = " + letterCount);
Spróbuj
int count = StringUtils.countMatches("engineering", "e");
Więcej o StringUtils można nauczyć się z pytaniem: How do I use StringUtils in Java?
Skąd bierzesz 'StringUtils'? –
Proszę sprawdzić to commons.apache.org/lang/api-2.5/org/apache/commons/lang/StringUtils.html – sunleo
Chociaż Regex będzie działał dobrze, ale tak naprawdę nie jest wymagany tutaj. Możesz to zrobić po prostu za pomocą for-loop
, aby zachować count
dla postaci.
Trzeba by przekształcić swój ciąg do tablicy char: -
String str = "engineering";
char toCheck = 'g';
int count = 0;
for (char ch: str.toCharArray()) {
if (ch == toCheck) {
count++;
}
}
System.out.println(count);
lub można też zrobić to bez konwersji do charArray
: -
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == toCheck) {
count++;
}
}
Proszę sprawdzić, czy występuje niezgodność liczby. – sunleo
@sunleo .. Dla jakiego kodu? Cóż, oboje działają dobrze. Właśnie to sprawdziłem. –
@sunleo .. Proszę ich wypróbować. Obaj podają "3" jako liczbę w moim przypadku. –
String s = "engineering";
char c = 'g';
s.replaceAll("[^"+ c +"]", "").length();
Jako uwaga, jeśli 'char c' pochodzi od danych wprowadzonych przez użytkownika, to podejście jest podatne na wtrysk regex. (podobne do SQL injection) – Tuupertunut
You może przechodzić przez to i utrzymywać liczbę liter, które chcesz.
public class Program {
public static int countAChars(String s) {
int count = 0;
for(char c : s.toCharArray()) {
if('a' == c) {
count++;
}
}
return count;
}
}
lub możesz użyć StringUtils, aby uzyskać liczbę.
int count = StringUtils.countMatches("engineering", "e");
wiem, że to i stare pytanie, ale istnieje możliwość, że nie została wysłuchana i to dość prosta-liner:
int count = string.length() - string.replaceAll("g","").length()
Myślę, że powinieneś dodać beginIndex i endIndex do podłańcucha –
jest to bardzo, bardzo stare pytanie, ale może to pomoże ktoś ("_")
można po prostu po prostu użyć tego kodu
public static void main(String[] args){
String mainString = "This is and that is he is and she is";
//To find The "is" from the mainString
String whatToFind = "is";
int result = getCountOf(mainString, whatToFind);
System.out.println(result);
}
public static int countMatches(String mainString, String whatToFind){
String tempString = mainString.replaceAll(whatToFind, "");
//this even work for on letter
int times = (mainString.length()-tempString.length())/whatToFind.length();
//times should be 4
return times;
}
użycie org.apache.c Pakiet ommons.lang3 do użytku Klasa StringUtils. pobierz plik jar i umieść go w folderze lib aplikacji internetowej.
int count = StringUtils.countMatches("engineering", "e");
- 1. Ile razy jeden ciąg zawiera inną
- 2. sprawdzić, czy ciąg zawiera numer większy niż
- 3. Znajdź, jeśli ciąg zawiera znak w C++ (doładowanie)
- 4. policzyć ile razy pojawia się ciąg w innym ciągiem
- 5. Aby sprawdzić, czy ciąg zawiera określone słowo
- 6. Jak mogę sprawdzić, czy ciąg zawiera litery w Swift?
- 7. Complex "zawiera" Porównanie ciąg
- 8. Jak mogę sprawdzić, czy ciąg zawiera tylko litery?
- 9. Sprawdź, czy ciąg zawiera podłańcuch
- 10. Sprawdź, czy ciąg zawiera inny ciąg
- 11. % znak w ciąg Objective C
- 12. Espresso - TextView zawiera ciąg
- 13. ciąg znaków JQuery zawiera sprawdzanie
- 14. ciąg zawiera tylko alfabety
- 15. Jak sprawdzić w JavaScript że ciąg zawiera znaki alfabetu
- 16. Jak mogę sprawdzić, czy ciąg zawiera znaki wielobajtowe w JavaScript?
- 17. Ruby - Jak sprawdzić, czy ciąg zawiera wszystkie słowa w tablicy?
- 18. Jak mogę sprawdzić, czy ciąg zawiera tylko litery w Pythonie?
- 19. Jak mogę sprawdzić, czy ciąg zawiera chiński w Swift?
- 20. W języku C#, jak sprawdzić, czy ciąg zawiera liczbę całkowitą?
- 21. Jak sprawdzić, czy ciąg zawiera część innego ciągu w C#?
- 22. Jak sprawdzić, czy tablica znaków zawiera jeden ciąg w JavaScript?
- 23. Jak sprawdzić, czy tablica zawiera ciąg znaków w maszynopisie?
- 24. Emacs powtórzyć ciąg n razy
- 25. Sprawdź, czy ciąg zawiera słowo w tablicy
- 26. Jak sprawdzić, czy ciąg znaków zawiera listę znaków?
- 27. Jak sprawdzić, czy ciąg zawiera litery angielskie (A-Z)?
- 28. Jak sprawdzić, czy ciąg zawiera tylko znaki alfanumeryczne i myślniki?
- 29. Jak sprawdzić, czy TextView zawiera określony ciąg znaków
- 30. konwertuj niepodpisany znak * na ciąg
Przekształć w tablicę znaków i przeprowadź przez nią pętlę, sprawdzając, czy pasują. Sprawdź [java.util.String] (http://docs.oracle.com/javase/7/docs/api/java/lang/String.html) – MadProgrammer