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