public static void main(String[] args) {
String input ="A8r4c5jaAjp#7";
//转为char[]
char[] inputArr =input.toCharArray();
//存储 大写字母、小写字母
List<String> upperCaseList = new ArrayList<>(), lowerCaseList =new ArrayList<>();
for(int i=0;i<inputArr.length;i++) {
if(inputArr[i] >=65 && inputArr[i] <=90) { //大写字母
upperCaseList.add(String.valueOf(inputArr[i]));
}else if(inputArr[i] >=97 && inputArr[i] <=122) { //小写字母
lowerCaseList.add(String.valueOf(inputArr[i]));
}
}
//将大写字母、小写字母 list转为String[]
String[] upperCaseArr =upperCaseList.toArray(new String[0]);
String[] lowerCaseArr =lowerCaseList.toArray(new String[0]);
//对大写字母进行排序
Arrays.sort(upperCaseArr);
//对小写字母进行排序
Arrays.sort(lowerCaseArr); //取出大写字母,拼成字符串
StringBuilder result =new StringBuilder();
for(int i=0;i<upperCaseArr.length;i++) {
result.append(upperCaseArr[i]);
} //定义接收剩余字母
StringBuilder remainingStr =new StringBuilder();
for(int i=0;i<lowerCaseArr.length;i++) {
//将小写字母转为大写字母
String upperCaseStr =lowerCaseArr[i].toUpperCase();
//取出大写字母所在索引
int index =result.lastIndexOf(upperCaseStr);
if(index !=-1) { //存在大写字母
//去开头,拼接
String startStr =result.substring(0, index +1) +lowerCaseArr[i];
//取结尾
String endStr =result.substring(index + 1);
//重新赋值
result =new StringBuilder(startStr + endStr);
}else { //不存在大写字母
remainingStr.append(lowerCaseArr[i]);
}
}
//将不存在的小写字母拼接
result.append(remainingStr);
System.out.println(result);
}

结果 :AAacjjpr

最新文章

  1. java必备基础知识点
  2. 创建GitHub技术博客全攻略
  3. ios电话/密码/验证码/身份证的正则表达式
  4. php 常用设计模式详解
  5. SQL 生成一个日期范围
  6. EPP3怎么安装SVN(EclipsePHP Studio 3.0)
  7. citrix xen server 虚拟机无法关闭的问题
  8. [C# 网络编程系列]专题九:实现类似QQ的即时通信程序
  9. JDK Debug
  10. Chapter 6: The Memory Hierarchy
  11. JAVA中JPA的主键自增长注解设置
  12. Centos7 下 tty2等文字窗口的中文乱码问题分析
  13. 共创力董事长杨学明先生受邀参加CED智慧大会!
  14. 【LeetCode191】Number of 1 Bits★
  15. js 将很长的内容进行页面分页显示
  16. BZOJ1143 [CTSC2008]祭祀river 二分图匹配 最小链覆盖
  17. Gym-101653:acific Northwest Regional Contest (2019训练第一场)
  18. 项目复审——Beta阶段
  19. Java之DelayQueue实际应用
  20. (值类型引用类型)和null的关系

热门文章

  1. @EnableAspectJAutoProxy 注解的作用 —— 转载
  2. mfcc vs fbank
  3. STM32F4 HAL库中是如何实现UART IO配置的?
  4. vector 搜罗最强版
  5. angular的发布订阅
  6. ASP.NET Core连接字符串中的特殊字符如何处理?多实例如何连接?
  7. 解决xpath提取的数据列表,保存时不能一一对应的问题
  8. 迭代器简易用法Iterator
  9. js 基础篇--保留字
  10. Java实验 继承与接口