我有大寫字母和數字組成的字符串,我必須「邏輯」排序,並存儲在數據庫中的字段。我已經將更新/更改/查詢部分納入了數據庫。我很難在邏輯上對這個字符串進行排序。邏輯排序的大寫字母和數字的混合串
這裏去,我希望我能很好地解釋這一點。
鑑於這一組字符串 AB1 AB2 AB3 A11 AB10
我需要這些阿爾法有點像這樣
A11 AB1 AB2 AB3 AB10
爲了爲了實現這一點,我相信我需要爆炸字符串。因爲目前正試圖字母排序產生A11 AB1 AB10 AB2 AB3
編輯:我需要能夠存儲的分解字符串和非爆炸串能夠與其它程序進行排序。
這裏是我認爲他們需要被分解並存儲在順序排序阿爾法
A11 - A 11
AB1 - AB 1
AB2 - AB 2
AB3 - AB 3
AB10 - AB 10
有一些常量。該字符串將不會大於5個位置。它只會包含大寫字母和數字。
這是據我已經與我的代碼得到。作家阻止,所以我希望得到一些幫助。我想我需要找到它是否以字母開頭,然後找到所有的連續的字母,搬完下車離開,然後去上號的工作,找到所有的連續編號,然後將這些右對齊。不知道如何像「A1B1」會工作要麼...
for(int ii = 0;ii < sectionString.length() && ii< SECTIONSPACES;ii++){
System.out.print(" Was previous a number? " + isPreviousANumber + "\n");
try{
String tmpString = sectionString.substring(ii,ii + 1);
int positionInCharArray = Integer.parseInt(tmpString);
System.out.printf(" Position " + ii + " is number " + positionInCharArray + "\n");
isPreviousANumber = true;
}catch(Exception e){
System.out.printf(" Position " + ii + " number is not a number " + sectionString.substring(ii,ii) + "\n");
isPreviousANumber = false;
}
}
使用類似於基數排序的數字,其數字優先於字母。 – arynaq
我會複製下面我做的評論如果我可以使用java對它們進行排序,這些工作對排序它們非常有用。問題是不同的程序需要對它們進行排序並與它們兼容,我需要'爆炸'字符串並使用爆炸字符串進行排序並顯示常規值。我知道不是'正常'。在數據庫中會有兩個字段,其中一個將被稱爲section和一個名爲sort_section的字段。合理? – nkuebelbeck