Mam coś takiego jak "ali123hgj". Chcę mieć 123 w liczbie całkowitej. jak mogę zrobić to w java?numer z ciągu znaków w java
Odpowiedz
Poniższa RegExp (patrz http://java.sun.com/docs/books/tutorial/essential/regex/):
\d+
przez:
final Pattern pattern = Pattern.compile("\\d+"); // the regex
final Matcher matcher = pattern.matcher("ali123hgj"); // your string
final ArrayList<Integer> ints = new ArrayList<Integer>(); // results
while (matcher.find()) { // for each match
ints.add(Integer.parseInt(matcher.group())); // convert to int
}
int i = Integer.parseInt("blah123yeah4yeah".replaceAll("\\D", ""));
// i == 1234
Uwaga jak to będzie "scalić" cyfr z różnych części strun razem pod jednym numerem . Jeśli mimo to masz tylko jeden numer, to nadal działa. Jeśli chcesz tylko pierwszy numer, a następnie można zrobić coś takiego:
int i = Integer.parseInt("x-42x100x".replaceAll("^\\D*?(-?\\d+).*$", "$1"));
// i == -42
regex jest nieco bardziej skomplikowana, ale to w zasadzie zastępuje cały łańcuch z pierwszej sekwencji cyfr, który zawiera ona (z opcjonalnym minus), przed użyciem Integer.parseInt
do parsowania na liczbę całkowitą.
Można chyba zrobić wzdłuż tych linii:
Pattern pattern = Pattern.compile("[^0-9]*([0-9]*)[^0-9]*");
Matcher matcher = pattern.matcher("ali123hgj");
boolean matchFound = matcher.find();
if (matchFound) {
System.out.println(Integer.parseInt(matcher.group(0)));
}
To łatwo dostosować do wielu grup numerów, jak również. Kod ma charakter orientacyjny: nie został przetestowany.
int index = -1;
for (int i = 0; i < str.length(); i++) {
if (Character.isDigit(str.charAt(i)) {
index = i; // found a digit
break;
}
}
if (index >= 0) {
int value = String.parseInt(str.substring(index)); // parseInt ignores anything after the number
} else {
// doesn't contain int...
}
public static final List<Integer> scanIntegers2(final String source) {
final ArrayList<Integer> result = new ArrayList<Integer>();
// in real life define this as a static member of the class.
// defining integers -123, 12 etc as matches.
final Pattern integerPattern = Pattern.compile("(\\-?\\d+)");
final Matcher matched = integerPattern.matcher(source);
while (matched.find()) {
result.add(Integer.valueOf(matched.group()));
}
return result;
wejścia "asg123d ddhd-2222-33sds --- --- --- 33dd 222 SS 234" zmieniają się tym ouput [123 -2222, -33, -222, - 33, 234]
To jest droga Google Guava #CharMatcher.
String alphanumeric = "12ABC34def";
String digits = CharMatcher.JAVA_DIGIT.retainFrom(alphanumeric); // 1234
String letters = CharMatcher.JAVA_LETTER.retainFrom(alphanumeric); // ABCdef
Jeśli tylko dbać, aby dopasować cyfry ASCII, użyj
String digits = CharMatcher.inRange('0', '9').retainFrom(alphanumeric); // 1234
Jeśli tylko dbać, aby dopasować litery alfabetu łacińskiego, użyj
String letters = CharMatcher.inRange('a', 'z')
.or(inRange('A', 'Z')).retainFrom(alphanumeric); // ABCdef
- 1. Dopasuj numer na końcu ciągu znaków
- 2. Jak zamienić każdą liczbę w ciągu znaków na inny numer?
- 3. Sortowanie pojedynczego ciągu znaków w języku Java
- 4. liczyć określone znaki w ciągu znaków (Java)
- 5. Jak wpisywać cudzysłowy w ciągu znaków Java?
- 6. Usuwanie znaków z ciągu znaków
- 7. Zwracanie ciągu znaków z NSURLRequest
- 8. TypeScript Konwertowanie ciągu na numer
- 9. Pobierz numer z ciągu znaków po określonym znaku i przekonwertuj ten numer
- 10. Uruchom kod z ciągu znaków w języku Java
- 11. Konwertowanie ciągu znaków szesnastkowych na niepodpisany numer int C++
- 12. Usuwanie znaków niealfanumerycznych z ciągu znaków
- 13. Usuwanie określonych znaków z ciągu znaków
- 14. Uzyskiwanie typu klasy z ciągu znaków
- 15. Java - Przytnij znaki wiodące lub końcowe z ciągu znaków?
- 16. usunąć znaczniki html z ciągu znaków przy użyciu java
- 17. Dodawanie ciągu znaków z ciągiem znaków w ios
- 18. Usuwanie wielu typów znaków z ciągu znaków
- 19. Usuwanie zduplikowanych znaków z ciągu znaków
- 20. Java usuwa znaki nieliczbowe z ciągu znaków za wyjątkiem x
- 21. Pobierz ostatnie trzy znaki z dowolnego ciągu znaków - Java
- 22. scala - pobierz klasę z ciągu znaków
- 23. Wyodrębnij numer z ciągu tekstowego - Excel
- 24. Usuwanie spacji z ciągu znaków
- 25. Jak dołączyć backslash w ciągu znaków w java
- 26. Formatowanie ciągu znaków na 10 znaków
- 27. Parsować krotkę z ciągu znaków?
- 28. Zastępowanie liczby w ciągu znaków jquery
- 29. Usuń HTML z ciągu znaków
- 30. Sprawdzanie znaków specjalnych w ciągu znaków
Co z '' abc123def567ghi "' lub '" abcdef "'? – kennytm
Masz zawsze 3 znaki przed numerem lub jest to tylko przykład? – lbedogni
to nie jest tylko trzy znaki .it to liczba od 0 lub więcej znaków. może to być "123", "sdfs", "123fdhf", "fgdkjhgf123" –