我正在尝试对图像名称列表进行排序。为简单起见,我将其放置在表单的示例 Groovy 列表中:
imageNames=[
'20131018PKH26DRAQ5HOECHST1_A01_T0001F001L01A01Z01C01.tif',
'20131018PKH26DRAQ5HOECHST1_A01_T0001F001L01A01Z01C03.tif',
'20131018PKH26DRAQ5HOECHST1_A01_T0001F001L01A02Z01C04.tif',
'20131018PKH26DRAQ5HOECHST1_A01_T0001F001L01A03Z01C02.tif'
]
我希望能够按照图像名称后缀中存在的任何 T、F、L、A、Z 或 C 代码的数字顺序对该列表进行排序。
因此,例如,如果要根据 C 代码对列表进行排序,则它应按以下顺序显示:
- '20131018PKH26DRAQ5HOECHST1_A01_T0001F001L01A01Z01C01.tif',
- '20131018PKH26DRAQ5HOECHST1_A01_T0001F001L01A03Z01C02.tif',
- '20131018PKH26DRAQ5HOECHST1_A01_T0001F001L01A01Z01C03.tif',
- '20131018PKH26DRAQ5HOECHST1_A01_T0001F001L01A02Z01C04.tif'
我曾想过使用比较器使用默认的 Groovy 集合排序方法。但是,我不确定如何将比较器直接写入闭包。我想要类似的东西
imageNames.sort{comparator_for_C}
我可以为每个 T、F、L、A、Z 和 C 代码编写特定的比较器。