java 英文单词排序 java按字母顺序排序

您所在的位置:网站首页 按字母顺序排列的英文单词 java 英文单词排序 java按字母顺序排序

java 英文单词排序 java按字母顺序排序

2024-07-10 00:45:45| 来源: 网络整理| 查看: 265

java 英文单词排序 java按字母顺序排序 转载

mob6454cc77b8eb 2023-06-30 22:05:33

文章标签 java 英文单词排序 java机试题 java 大小写 List 文章分类 Java 后端开发

描述

编写一个程序,将输入字符串中的字符按如下规则排序。

规则 1 :英文字母从 A 到 Z 排列,不区分大小写。如,输入: Type 输出: epTy

规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。如,输入: BabA 输出: aABb

规则 3 :非英文字母的其它字符保持原来的位置。

如,输入: By?e 输出: Be?y

思路

1.将输入的字符串拆分为两类,字母类和非字母类。

2.字母类进行忽略大小写类型进行排序,用于保证同一个英文字母的大小写同时存在时,按照输入顺序排列。

3.对于非字母类的字符,需要记录原始的位置。

4.将排序好的字母类和记录了非字母类位置的两部分合并,输出结果。

import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Scanner; import javax.script.ScriptEngineManager; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNextLine()) { String str = sc.nextLine(); // 字母类型的集合 List charTypes = new ArrayList(); // 非字母类型的集合 List charNoEns = new ArrayList(); for (int i = 0; i < str.length(); i++) { String charInfo = str.substring(i,i+1); CharType charType = new CharType(); charType.setCharInfo(charInfo); charType.setPosition(i); if(charInfo.matches("[A-Za-z]")) { charTypes.add(charType); } else { charNoEns.add(charType); } } // 字符串排序,比较大小,忽略大小写,同字母大小写保持原来前后顺序 Collections.sort(charTypes,new Comparator(){ @Override public int compare(CharType o1, CharType o2) { return o1.getCharInfo().compareToIgnoreCase(o2.getCharInfo()); } }); // 结果字符串 StringBuffer strs = new StringBuffer(); CharType charNoEn = new CharType(); int charTypeCount = 0; // 结果集合长度为总长度 for (int i = 0; i < charTypes.size() + charNoEns.size(); i++) { // 判断当前位置是否有非字母类型 final int curPos = i; charNoEn = charNoEns.stream().filter(o-> o.getPosition() == curPos).findFirst().orElse(null); // 有非字母,保持原有位置 if(charNoEn != null) { strs.append(charNoEn.getCharInfo()); } else { // 字母。则使用排序后的位置,需注意的是:需要使用计数变量来 strs.append(charTypes.get(charTypeCount).getCharInfo()); charTypeCount++; } } System.out.println(strs.toString()); } } public static class CharType { private String charInfo; // 字符 private int position; // 输入时的位置 public String getCharInfo() { return charInfo; } public void setCharInfo(String charInfo) { this.charInfo = charInfo; } public int getPosition() { return position; } public void setPosition(int position) { this.position = position; } } }

本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。 收藏 评论 分享 举报

上一篇:CDN架构系统 cdn项目

下一篇:python装哪 python安装哪个



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭