Excel順ソート
30分プログラム、その790。AAがZのあとにでてくるExcel順ソートを書いてみました。
Excelの列ラベルはZのあとにAAがでてくるから、辞書順ソートじゃうまくいかないよねー、というお話。[twitter:@ueda51]さんのつぶやきにインスパイアされた気がするけれど、あらためて探したらみつからなった。
使い方
scala> List("a","b","aa","zz","c").sort(excelCompare(_,_)) res17: List[java.lang.String] = List(a, b, c, aa, zz)
ソースコード
def excelCompare(x : String, y : String) : Boolean = { val x_len = x.size val y_len = y.size if(x_len == y_len){ x < y }else{ x_len < y_len } } println(excelCompare("a","b")) println(excelCompare("a","c")) println(excelCompare("a","aa")) println(excelCompare("z","aa")) List("a","b","aa","zz","c").sort(excelCompare(_,_))