我有大写字母和数字组成的字符串,我必须“逻辑”排序,并存储在数据库中的字段。我已经将更新/更改/查询部分纳入了数据库。我很难在逻辑上对这个字符串进行排序。逻辑排序的大写字母和数字的混合串
这里去,我希望我能很好地解释这一点。
鉴于这一组字符串 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