java字符串排序

Arrays中提供了基本数据类型数组排序

  1. String[] strs = new String[]{"abfds1""advesd2""dasfdsa3""cdsaew1""abbdsa3""abbdsa2""abbdsa"};  
  2. Arrays.sort(strs);  
  3. for(String str : strs) {  
  4.     System.out.println(str);  
  5. }  

结果如下:

  1. abbdsa  
  2. abbdsa2  
  3. abbdsa3  
  4. abfds1  
  5. advesd2  
  6. cdsaew1  
  7. dasfdsa3  

其他的Object类型排序需要对象实现CompareTo接口,或使用实现了ComparaTor接口的对象作为Arrays.sort方法的第二个参数。
### Java字符串排序的方法 在Java中,可以通过多种方式对字符串进行排序。以下是几种常见的方式: #### 方法一:使用 `Arrays.sort()` 和 `String` 的 `compareTo()` 方法 通过将字符串数组传递给 `Arrays.sort()` 函数来实现字典序排序。此函数内部调用了 `String.compareTo()` 来比较两个字符串。 ```java import java.util.Arrays; public class SortStrings { public static void main(String[] args) { String[] strings = {"banana", "apple", "orange"}; Arrays.sort(strings); System.out.println(Arrays.toString(strings)); } } ``` 这段代码展示了如何利用内置库函数轻松完成基本的升序排列[^1]。 #### 方法二:基于字符数组排序再转回字符串 对于单个较长的字符串而言,先将其转化为字符数组形式,之后同样借助 `Arrays.sort()` 完成排序工作,最后重新构建新的有序字符串对象。 ```java public class CharArraySortExample { private static String sortCharsInString(String inputStr){ char tempArray[] = inputStr.toCharArray(); Arrays.sort(tempArray); return new String(tempArray); } public static void main(String[] args) { String originalStr = "dcba"; System.out.println(sortCharsInString(originalStr)); } } ``` 上述例子说明了怎样处理单一字符串内的字符顺序调整问题[^2]。 #### 方法三:针对含有数字字符的情况特殊处理 如果目标字符串里混杂着非纯字母成分比如阿拉伯数字,则可能需要自定义逻辑去区分对待这些不同型的符号,在此基础上实施更复杂的排序策略。 ```java public class NumberSortingInString { private static String sortStringWithNumbers(String str) { StringBuilder digits = new StringBuilder(), nondigits = new StringBuilder(); for (char c : str.toCharArray()) { if(Character.isDigit(c)) digits.append(c); else nondigits.append(c); } char digitArr[] = digits.toString().toCharArray(), nonDigitArr[] = nondigits.toString().toCharArray(); Arrays.sort(digitArr); Arrays.sort(nonDigitArr); return new String(nondigits).concat(new String(digits)); } public static void main(String[] args) { String mixedContent = "a7b8c9"; System.out.println(sortStringWithNumbers(mixedContent)); } } ``` 这里给出了一种混合型数据串内部分离并分别排序后再组合输出方案的例子[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值