tôi đưa ra một chuỗi có thể bao gồm cả văn bản và dữ liệu số:Extract dữ liệu số từ chuỗi trong groovy
Ví dụ:
"100 pound" "Tôi nghĩ 173 lbs" "73 lbs. "
Tôi đang tìm một cách rõ ràng để chỉ trích xuất dữ liệu số từ các chuỗi này.
Đây là những gì tôi đang làm dải phản ứng:
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
}
}
Giải pháp mà tôi đã kết thúc thực hiện dựa trên những lời khuyên trên, tôi chỉ muốn lấy số đầu tiên (nếu có bội số, tôi làm mất hiệu lực phản hồi). Cảm ơn @tim_yates! 'def extractNumericData (Chuỗi phản hồi) { nếu (phản hồi) { def numberList = response.findAll (/[0-9]+.[0-9]*|[0-9]*.[0-9 ] + | [0-9] + /) if (numberList.size() == 1) { trở numberList.get (0) như BigDecimal } else { trở -1 }} } ' –