java输入一个字符串,要求将该字符串中出现的英文字母, * 按照顺序输出,区分大小写,且大写优先

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输入一个字符串,要求将该字符串中出现的英文字母, * 按照顺序输出,区分大小写,且大写优先的更多相关文章
- C语言:根据形参c中指定的英文字母,按顺序打印出若干后继相邻字母,-主函数中放入一个带头节点的链表结构中,h指向链表的头节点。fun函数找出学生的最高分-使用插入排序法对字符串中的字符进行升序排序。-从文件中找到指定学号的学生数据,读入次学生数据,
//根据形参c中指定的英文字母,按顺序打印出若干后继相邻字母,输出字母的大小与形参c一致,数量由形参d指定.例如:输入c为Y,d为4,则输出ZABC. #include <stdio.h> ...
- 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
题目描述 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数. 输入描述: 输入一个int型整数 输出描述: 按照从右向左的阅读顺序,返回一个不含重复数字的新的整数 输入例子 ...
- Java 输入一个整数,计算它各位上数字的和。(注意:是任意位的整数)
import java.util.*; /* * 输入一个整数,计算它各位上数字的和. * (注意:是任意位的整数) */ public class Sum02 { public static voi ...
- Java 输入一个正整数,按蛇形打印。
参考博客: http://yangyingming.com/article/371/ //输入一个正整数n(n<=30),输出n所对应的蛇形矩阵.举两个例子: //n=10时,蛇形矩阵为: ...
- [java]输入一个算术表达式输出结果
动手有益. 输入一个表达式,没有括号,数字小于0-9之间,输出计算结果,所有的中间结果化为整形.例如: 输入:3+8×2/9-2 输出:2 /** * input a calculate stri ...
- java输入一个字符串,打印出该字符串中字符的所有排列,随机打乱排序
import java.util.ArrayList;import java.util.Collections;import java.util.List; public class Test7{ ...
- java输入一个字符串,输出该字符串的所有的排序
public class Sort { public static void arrangeSequence(char[] strArr,int i){ char temp; ArrayList< ...
- java 输入一个字符串,打印出该字符串中字符的所有排列
import java.util.Scanner; public class Demo001 { public static void main(String[] args) { String str ...
- 用java写一个两个任意长度字符串数字和的算法
package com.cn.test.string; public class StringTest { public static void main(String[] args) { Strin ...
- Java读取一个文本文件拼接成一个字符串(readFileToString)
import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.I ...
随机推荐
- centos7 启动报错 Failed to mount /sysroot
centos7 启动报错 Failed to mount /sysroot 场景: centos7系统异常关闭后,启动后进入不了图形化界面 解决方法: 1. 定位报错原因 进入单用户模式后执行下面 ...
- Linux系统修改静态ip
查看所有网卡 ip信息 ipconfig 修改网卡文件 vim /etc/sysconfig/network-scripts/ifcfg-eno1(网卡名) 新增语句 IPADDR=192.168.1 ...
- R6-1 输入年份和天数,输出对应的年、月、日
R6-1 输入年份和天数,输出对应的年.月.日 分数 15 全屏浏览题目 切换布局 作者 张泳 单位 浙大城市学院 要求定义和调用函数month_day ( year, yeardy, *****pm ...
- 多线程学习(第二天)Java内存模型
一.内存模型基础 Java的并发采用的是共享内存模型,Java线程之间的通信总是隐式进行,整个通信过程对程序员完全透明. 如果编写多线程程序的Java程序员不理解隐式进行的线程之间通信的工作机制,很可 ...
- c#遍历一个对象的字段信息
c#遍历对象字段 场景:有一个对象作为导出word段落的数据.每一个字段就代表一个段落,可以对相应段落数据设置样式(字体.颜色.加粗--) 参考文献:(12条消息) C#获取实体类字段信息Proper ...
- python flatten()函数的作用和用法
flatten()函数可以执行展平操作,返回一个一维数组. 函数的作用对象是数组array.矩阵mat,不能直接用于列表list. x.flatten()是把numpy对象x降低到一维,默认是按照 行 ...
- 881. 救生艇 (Medium)
问题描述 881. 救生艇 (Medium) 给定数组 people . people[i] 表示第 i 个人的体重 , 船的数量不限,每艘船可以承载的最大重量为 limit. 每艘船最多可同时载两人 ...
- TCP协议之三次握手(二)
本节主要研究三次握手出现的一些异常情况和编程相关的知识: 上一节分析了三次握手的过程,本节会回答一些三次握手的小问题,然后利用linux系统调用实践一下简单的网络的编程. 三次握手的常见问题 Q 向一 ...
- 时间序列 data_range()
pd.date_range( start=None,#开始时间 end=None,#截止时间 periods=None,#总长度 freq=None,#时间间隔 tz=None,#时区 normali ...
- Godot从编辑器创建自定义场景类型对象
Godot的编辑器提供了强大的所见即所得功能,并且,我们可以在不从源码编译的情况下,为编辑器提供新的节点类型. 首先,我们创建一个新场景,然后添加一个Node2D,然后为当前节点(Node2D)添加一 ...