我有一串大写字母和数字,我必须对它们进行“逻辑”排序并存储在数据库的字段中。我已经弄清楚了数据库中的更新/更改/查询部分。我很难对这个字符串进行逻辑排序。
说到这里,希望我能解释清楚。
给定这组字符串 AB1 AB2 AB3 A11 AB10
我需要这些像这样进行 alpha 排序
A11 AB1 AB2 AB3 AB10
为了实现这一点,我相信我需要爆炸字符串。因为目前尝试 alpha 排序会产生 A11 AB1 AB10 AB2 AB3
编辑:我需要能够存储一个展开的字符串和一个非展开的字符串,以便能够与其他程序进行排序。
以下是我认为需要将它们分解和存储以便对 alpha 进行排序的方式
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;
}
}