Java中字符串排序(附源码)

本文介绍了一种针对特定格式字符串(如13-1)的排序算法实现。该算法首先将字符串分解为前后两部分数字,然后通过冒泡排序方法,先按后半部分数字排序,再按前半部分数字进行二次排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有以下一组字符串

 

13-1、13-108、13-18、100-11、10-15、14-2、14-1

 

编写程序,先按照前半部分的数字进行排序,再按照后半部分的数字进行排序,最终输出要为:

 

10-15、13-1、13-18、13-108、14-1、14-2、100-11

核心代码:

 


 

 

 

	
String []s=new String[]{"13-1","13-108","13-18","100-11","10-15","14-2","14-1"}; int a[][]=new int[s.length][2]; String s1[]=new String[s.length]; String s2[]=new String[s.length]; for(int i=0;i<s.length;i++){ s1[i]=s[i].substring(0, s[i].indexOf("-",0)); s2[i]=s[i].substring(s[i].indexOf("-",0)+1,s[i].length()); //把字符串转化成int类型进行排序 //System.out.println(s1[i]+" "+s2[i]); a[i][0]=Integer.parseInt(s1[i]); a[i][1]=Integer.parseInt(s2[i]); } t.Printf(a); System.out.println("\n\n\n"); t.maoPao(a); t.Printf(a);

}


 

 
public void maoPao(int a[][]){ for(int i=0;i<a.length;i++){ for(int j=0;j<a.length-i-1;j++){ //先按照-后面的进行比较,小的往前面去 if(a[j][1]>a[j+1][1]){ int temp=a[j][1]; a[j][1]=a[j+1][1]; a[j+1][1]=temp; int temp2=a[j][0]; a[j][0]=a[j+1][0]; a[j+1][0]=temp2; } //再按照-前面进行最终排序,小的往前面去 if(a[j][0]>a[j+1][0]){ int temp=a[j][0]; a[j][0]=a[j+1][0]; a[j+1][0]=temp; int temp2=a[j][1]; a[j][1]=a[j+1][1]; a[j+1][1]=temp2; } } } }

 


 

 


 

 
public void Printf(int a[][]){ for(int i=0;i<a.length;i++){ System.out.print(a[i][0]+"-"+a[i][1]+" "); } }

 

运行结果:

 

  

 

 

 

 

 

 

 


 

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值