2017-08-21 109 views
2

我想要生成一個算法,我希望按字典順序得到下一個字符串。按照字典順序以升序排列創建一個字符串列表

假設我要產生長度26的名單,然後它是

['a','b'....'z'] 

現在假設我要產生長度260的名單,然後它是

['a0','a1','a2'...'a9','b1'....'z0'....'z9'] 

這種類型的算法有最大極限。但我不想要這種類型的限制。它可能是10000或100萬。

要求

算法應在以前作爲參數由它生成的字符串傳遞這樣一種方式工作。它應該按字典順序產生下一個字符串。而且我不希望使用時間戳(1503314045645)

感謝

+0

由於遞增字符串不是在現實生活中是有用的,也看到:https://stackoverflow.com/questions/43356549/auto-incrementing-alphanumeric-sequence/43358781#43358781 –

+1

什麼是字符集?另外,在第一種情況下,y不是'['a','aa',...,'aaa ... aaa(26次)']'? (我相信'aa'在詞法上比'b'小) – vish4071

回答

0

有關使用基地36格式化整數什麼? 它看起來像這樣在Java:

String next(String prev) { 
    if(prev==null) { 
    return "0"; 
    } 
    return Integer.toString(Integer.parseInt(prev, 36), 36); 
} 

其實它甚至更好,如果你使用存儲值的簡單整數,只是每次你需要的下一個值時增加並格式化使用基地36到整數的字符串:

Integer.toString(++value, 36); 

此方案中,數字輸出的字母之前,所以你會得到下面的標記: A7,A8,A9,AA,AB,...... AX,AY,AZ ,b0,b1 ... zx,zy,zz,100,101

如果你首先要求信件或想要任何特定的訂單或額外的字符,然後使用Matt Timmermans鏈接背後的解決方案。

相關問題