Piszę program, w którym użytkownik wprowadza ciąg znaków w następującym formacie:
"What is the square of 10?"
- Muszę sprawdzić, czy w łańcuchu znajduje się liczba
- a następnie wyodrębnij tylko liczbę.
- Jeśli używam
.contains("\\d+")
lub.contains("[0-9]+")
, program nie może znaleźć liczby w ciągu, bez względu na dane wejściowe, ale.matches("\\d+")
będzie działać tylko wtedy, gdy są tylko liczby.
Czego mogę użyć jako rozwiązania do znajdowania i wyodrębniania?
Odpowiedzi:
Spróbuj tego
źródło
Jeśli chcesz wyodrębnić pierwszą liczbę z ciągu wejściowego, możesz:
Przykłady:
źródło
Myślę, że jest szybszy niż regex.
źródło
s=s.replaceAll("[*a-zA-Z]", "")
zastępuje wszystkie alfabetys=s.replaceAll("[*0-9]", "")
zastępuje wszystkie cyfryjeśli wykonasz powyższe dwie zamiany, otrzymasz wszystkie specjalne znaki znaków
Jeśli chcesz wyodrębnić tylko liczby całkowite z pliku
String s=s.replaceAll("[^0-9]", "")
Jeśli chcesz wyodrębnić tylko alfabety z pliku
String s=s.replaceAll("[^a-zA-Z]", "")
Miłego kodowania :)
źródło
Nie mogłem znaleźć żadnego poprawnego wzoru. Postępuj zgodnie z poniższym przewodnikiem, aby uzyskać małe i słodkie rozwiązanie.
źródło
Poniższy kod wystarczy do „Sprawdź, czy ciąg zawiera liczby w Javie”
źródło
źródło
Wypróbuj następujący wzór:
źródło
"please"
to się nie powiedzie. Dodatkowo w przykładzie OP jest znak „?” w celu uwzględnienia."10"
dla próbki.Rozwiązanie, które wybrałem, wygląda następująco:
Na pewno nie jest to idealne rozwiązanie, ale odpowiadało moim potrzebom. Dziękuję wszystkim za pomoc. :)
źródło
Możesz tego spróbować
źródło
Ponieważ chcesz nie tylko wyszukać liczbę, ale także ją wyodrębnić, powinieneś napisać małą funkcję, która zrobi to za Ciebie. Idź list po literze, aż zauważysz cyfrę. Ach, właśnie znalazłem niezbędny kod w stackoverflow: znajdź liczbę całkowitą w łańcuchu . Spójrz na zaakceptowaną odpowiedź.
źródło
źródło
.matches(".*\\d+.*")
działa tylko dla liczb, ale nie dla innych symboli, takich jak//
lub*
itp.źródło
ASCII znajduje się na początku UNICODE, więc możesz zrobić coś takiego:
Jestem pewien, że potrafisz rozgryźć inne wartości ...
źródło