java默认字符串排序规则_Java 字符串排序--------请对一组字符串进行排序,字符串由大小写字母和数字组成,需要满足一下比较规则...

题目描述

请对一组字符串进行排序,字符串由大小写字母和数字组成,需要满足一下比较规则

长度不同时,长度较短在排前面。

长度相同时,按照字典顺序排列(AaBb-Zz,0-9顺序),即大写字母在小写字母前,数字排在字母后。

例:

abc Abc 123 1 1bc CBD abcd a

排序后结果为:

a 1 Abc abc CBD 1bc 123 abcd

代码如下

public class test{

public static void main(String[] args) {

String str [] = {"abc","Abc","123","1","1cb","CBD","abcd","a"};// 需要排序的字符串

for(int i=0;is2.length()) {

return true;

}else {

if(compare(s1,s2)) { //若字符串长度相同则利用fun函数进行判断

return true ;

}

}

return false;

}

public static boolean compare(String s1,String s2) {

if(s1.equals(s2)) { //判断俩个字符串是否相同

return false ;

}

for(int i=0;i='A'&&s1.charAt(i)<='Z')&&(s2.charAt(i)>='a'&&s2.charAt(i)<='z')) {//s1 大写 s2小写

if(s1.charAt(i)>s2.charAt(i)-32) {

return true ;

}else if(s1.charAt(i)==s2.charAt(i)-32) {

return true ;

}else {

return false ;

}

}

if((s1.charAt(i)>='a'&&s1.charAt(i)<='z')&&(s2.charAt(i)>='A'&&s2.charAt(i)<='Z')) {//s1小写 s2大写

if(s1.charAt(i)-32>s2.charAt(i)) {

return true ;

}else if(s1.charAt(i)-32==s2.charAt(i)) {

return true ;

}else {

return false ;

}

}

if((s1.charAt(i)>='A'&&s1.charAt(i)<='Z')&&(s2.charAt(i)>='A'&&s2.charAt(i)<='Z')) { //同大写

if(s1.charAt(i)>s2.charAt(i)) {

return true ;

}else if(s1.charAt(i)==s2.charAt(i)) {

continue;

}else {

return false;

}

}

if((s1.charAt(i)>='a'&&s1.charAt(i)<='z')&&(s2.charAt(i)>='a'&&s2.charAt(i)<='z')) { //同小写

if(s1.charAt(i)>s2.charAt(i)) {

return true ;

}else if(s1.charAt(i)==s2.charAt(i)) {

continue;

}else {

return false;

}

}

if(s1.charAt(i)

解题思路

思路基本和冒泡排序相同,若前者的字符串长度大于后者,或前者的字典序大于后者则进行位置互换。首先利用longs函数来判断字符串的长度,若长度相同则利用compare函数进行判断,首先用equals判断是否相同,用charAt来读取单个字符进行比较,当s1,s2同为大写或小写,s1,s2有一个大写有一个小写时,情况比较复杂,用if函数判断。

此代码为小编自己一人所写,若发现代码有误,请私聊     勿喷!!!!

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值