16 lines
493 B
Groovy
16 lines
493 B
Groovy
def string = "as⃝df̅"
|
|
|
|
List combiningBlocks = [
|
|
Character.UnicodeBlock.COMBINING_DIACRITICAL_MARKS,
|
|
Character.UnicodeBlock.COMBINING_DIACRITICAL_MARKS_SUPPLEMENT,
|
|
Character.UnicodeBlock.COMBINING_HALF_MARKS,
|
|
Character.UnicodeBlock.COMBINING_MARKS_FOR_SYMBOLS
|
|
]
|
|
List chars = string as List
|
|
chars[1..-1].eachWithIndex { ch, i ->
|
|
if (Character.UnicodeBlock.of((char)ch) in combiningBlocks) {
|
|
chars[i..(i+1)] = chars[(i+1)..i]
|
|
}
|
|
}
|
|
println chars.reverse().join()
|