Hey Tôi đã tạo một tập lệnh Groovy sẽ trích xuất các số phiên bản của một số thư mục. Sau đó tôi muốn so sánh các số phiên bản và chọn số cao nhất.So sánh các chuỗi phiên bản trong groovy
Tôi có kịch bản của tôi để chạy qua các thư mục dir và sau đó tôi nhận được các phiên bản ở định dạng này: 02.2.02.01
Vì vậy, tôi có thể nhận được một cái gì đó như thế này:
- 02.2.02.01
- 02,2 .02.02
- 02.2.03.01
tôi không có chúng như là một danh sách nhưng cũng giống như này:
baseDir.listFiles().each { file ->
def string = file.getName().substring(5, 15)
// do stuff
}
Ngoài ra tôi đã thử nghiệm Groovy có thể so sánh chúng với toán tử >
và có thể! Nhưng bây giờ tôi cần phải chọn một với phiên bản cao nhất
+ 1 Cần lưu ý rằng phương thức 'mostRecentVersion' sẽ để lại tham số' versions' được sắp xếp sau khi nó được thực hiện (như 'List.sort' đột biến danh sách theo mặc định). Nếu điều này là không muốn, bạn có thể (trong groovy 1.8.1+) gọi: 'def sắp xếp = phiên bản.sort (false) {a, b ->' –
@tim_yates Bạn không thể chỉ cho tôi tận hưởng thời điểm chiến thắng của tôi ? Ồ không, bạn phải nitpick. Tôi đã miễn cưỡng cập nhật câu trả lời của tôi để bao gồm đề xuất của bạn, cảm ơn :) –
Hahaha ... xin lỗi ;-) * xáo trộn trở lại bàn làm việc của mình * –