mam podane ciąg znaków, który może zawierać zarówno tekst jak i danych numerycznych:wyodrębnić dane liczbowe z ciągiem w Groovy
Przykłady:
"100 funtów" "Myślę 173 lbs" „73 funtów. "
Poszukuję czystej metody wyodrębniania tylko danych liczbowych z tych ciągów.
Oto co mam obecnie robi się rozebrać odpowiedź:
def stripResponse(String response) {
if(response) {
def toRemove = ["lbs.", "lbs", "pounds.", "pounds", " "]
def toMod = response
for(remove in toRemove) {
toMod = toMod?.replaceAll(remove, "")
}
return toMod
}
}
rozwiązanie, które skończyło się na wdrażaniu na podstawie opinii powyżej, chcę tylko zgarnij pierwszą liczbę (jeśli są wielokrotności, unieważniam odpowiedź). Dzięki @tim_yates! 'def extractNumericData (odpowiedź String) { if (odpowiedź) { def numberList = response.findAll (/[0-9]+.[0-9]*|[0-9]*.[0-9 ] + | [0-9] + /) if (numberList.size() == 1) { powrotu numberList.get (0), a BigDecimal } else { powrotu -1 } } } ' –