一个字符串排序的问题(100分)

  • 主题发起人 主题发起人 mcs51
  • 开始时间 开始时间
M

mcs51

Unregistered / Unconfirmed
GUEST, unregistred user!
有一字符串
s := 'a05,a03,a01,a04,a01,b03,b04';
如果要将其变为
ss := 'a05,b04,a04,b03,a03,a01,a01';
在程序里应该怎么写?
只是举个例子,实际的数据要复杂..
 
就是排序啊,字符串比较大小
 
按正常的算法派就行了
 
是不是只有三位,先按后两位排,再按首位排?
可以把字符串导到数据中去,表中共有三字段。
A B C
a05 05 a
a03 03 a
select a from table order by b,c就可能了
或把字符串导到listview再排序,方法相同
 
是这样的
字符 'a01' 'b02'....格式是固定的
第一位字母是不需要理会的,没有先后顺序

但是第二位后的顺序是要按照整数类型排序的
以前学的算法都忘掉了,书也找不到了
恳请各路大侠指点
to :江西的delphi

以前用的你所说的方法,就是现在想把数据库的东西甩开
还有没有更好的方法

 
提供个思路:
将字符串转换成Tstringlist,然后排序,最后转换成字符串.
看行不行?
 
或把字符串导到listview再排序,方法相shi或是Tstringlist或是数组(不知行不行)
或用 名称=值 形式

 
to :jackyzjh

我试一下,谢谢
 
这样吧,把后两位取出来当作integer用,用冒泡法。你把下面的改进一下旧可以了
冒泡法:
把字符串放如一个数组,或其他都可,这里举例用array
for i:=0 to count(?)-2 do
for j:=i+1 to count(?)-1 do
begin
把字符串的后两位取出来付给 integer a,b;
if a<b then
swap( ,)
//交换两个字符串
end;
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
915
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部