muszę wyodrębnić pierwszą całkowitą znaleźć w java.lang.String
i jestem pewien, czy aby spróbować użyć podejście substring
lub regex podejście:Wydajność Porównanie między podciąg vs RegEx gdy wskaźnik start jest znany
// Want to extract the 510 into an int.
String extract = "PowerFactor510";
// Either:
int num = Integer.valueof(extract.substring(???));
// Or a regex solution, something like:
String regex = "\\d+";
Matcher matcher = new Matcher(regex);
int num = matcher.find(extract);
Tak więc pytam:
- Który typ rozwiązania jest bardziej odpowiedni tutaj i dlaczego ?; i
- Jeśli podejście do podciągu jest bardziej odpowiednie, co mógłbym użyć, aby wskazać początek numeru?
- Inaczej, jeśli regex jest odpowiednim rozwiązaniem, jaki jest regex/pattern/matcher/method, który powinienem użyć, aby wyodrębnić numer?
Uwaga: Ciąg będzie zawsze zaczyna się słowem PowerFactor
następnie nieujemną liczbą całkowitą. Z góry dziękuję!
Regex byłby bardziej wskazany ze względu na szybsze przetwarzanie. –
Czy regex działa naprawdę szybciej niż 'substring (11)'? Pierwsza część jest zawsze ustalona ... Nie sądzę, że parsowanie regex, przechodzenie przez ciąg i wyodrębnianie odpowiedniej grupy byłoby szybsze niż po prostu odetnij 11 pierwszych znaków ... – ppeterka
http: // docs. oracle.com/javase/6/docs/api/java/lang/String.html#substring(int) – Kent