java中的字符串排序

2023-05-16

要求:对  "abc","fcc","egfd","asd","rtgh","deghk","fcc"字段进行排序,要求满足其为升序排列同时每个字符串里也是升序排列     


public class Test {

            public static void main(String[] args) {

String[] str  = new String[]{"abc","fcc","egfd","asd","rtgh","deghk","fcc"};

//   一   ,冒泡排序   (思路:先获取字符串数组里的每个字符串,然后使用toCharArray()方法得到这个字符串的char[] 再对char数

        //组里的元素进行对比,冒泡排序前面大的与后面交换顺序,再把得到的char数组重新转换为String,存入到一个新的String

        //数组中,然后在整体对新数组中各个字符串使用冒泡排序从而得到结果)

     printArr(stringRank(test(str)));


//    二     使用 Arrays.sort(s);方法进行排序

               String[] s = sortChar(str);
Arrays.sort(s);
printArr(s);

    }

}

//得到一个每个字符串里元素已经进行过排序的新字符串数组

     private static String[] test(String[] str){
    String st[] =  st = new String[str.length];
    for (int i = 0; i < str.length; i++) {
char[] c =  str[i].toCharArray();
charRank(c);
String s = new String(c);
st[i]  = s;
}
    return st;

     }

//对字符串里元素进行排序

  private static void charRank(char[] c){
    for (int j = 0; j < c.length; j++) {
for (int j2 = 0; j2 < c.length-j-1; j2++) {
if(c[j2]>c[j2+1]){
char len = c[j2];
c[j2] = c[j2+1];
c[j2+1] = len;
}
}
}

     }

//对新字符串数组里的字符串进行排序(升序)字符串比较使用compareTo()方法

//String本身并不具备比较大小功能,它的String对象实现了Comparable接口,这个接口是具有比较大小功能的接口,里面定义了比较方法compareTo()方法

//所以如果我们定义了一个类,这个类产生的对象需要比较大小就需要去实现Comparable接口,重写compareTo()方法,这种

//排序成为类的自然排序,compareTo()方法称为自然比较方法,因为String类已经实现了compareTo()方法,所以这里可以

//直接使用

//该方法的比较对象与指定对象的顺序

//compareTo(T  o)     返回值:int  返回0(两者相等),负数(对象小于参数),正数(对象大于参数)     参数o为要比较的对象

private static String[] stringRank(String[] str) {


for (int i = 0; i < str.length; i++) {
for (int j = 0; j < str.length - i - 1; j++) {
if (str[j].compareTo(str[j + 1]) > 0) {
String s = str[j];
str[j] = str[j + 1];
str[j + 1] = s;
}
}
}
return str;
}

private static String[] sortChar(String[] str) {
String[] s = new String[str.length];
for (int i = 0; i < str.length; i++) {
char[] c = str[i].toCharArray();
Arrays.sort(c);
s[i] = String.valueOf(c);
}
return s;
}

private static void printArr(String[] str){
for (int i = 0; i < str.length; i++) {
System.out.print(str[i]+"\t");
}
System.out.println();
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java中的字符串排序 的相关文章

随机推荐

  • Java如何实现输入流的复制?(输入流重复使用)

    众所周知 xff0c Java的输入流只能读取一次 xff0c 但是实际操作中我们想要重复操作inputStream就会出现问题 那如果是操作同一个inputStream xff0c 我们可以通过转字节流的方式来解决 64 param in
  • Mysql中SQL语句中日期格式转换(DATE_FORMAT()篇)

    鉴于平时时常会用到日期格式的转换 xff0c 以提供给前端正确的时间显示格式 格式化的方式比较多 xff0c 比如Java方式 xff0c 举个栗子如下 xff1a Date date 61 new Date SimpleDateForma
  • 如何升级nodejs版本

    nodejs怎么升级版本 xff1f 这里介绍三种方法 方法一 xff1a 用n升级nodejs xff08 建议使用此方法 xff09 查看当前node版本 node v 清除npm缓存 npm cache clean f 全局安装n n
  • 初识编程语言Python

    什么是编程语言 学习知识 最快速的掌握方式就是搞清楚它的素质三连 1 它是什么 2 它有什么用 3 它该怎么用 学习一个东西 最重要的就是搞清楚本质和实质 编程源自于生活 gt 多用生活的例子来理解编程思路 编程语言的本质 39 语言 39
  • 分组查询——组内排序展示组内数据(row_number() over(partition by) 函数详解)

    日常开发中可能遇到很多分组的业务需求 xff0c 比如分组查询后取第一条 组内排序等 xff0c 除了用group by来做分组 xff0c 我们还可以使用row number over partition by 这个函数来解决分组问题 简
  • 复制List<Object>集合遇到的“坑“

    记一个使用List lt Object gt 复制的坑 问题经过 xff1a 有一个需求 xff0c 需要返回结果组成装成Map lt String List lt Object gt gt 这种格式 xff0c Map的可以就是字符串没啥
  • Mac上好用的redis客户端推荐

    推荐mac一个开源免费 好用的redis客户端 xff1a QuickRedis 它支持直连 哨兵 集群模式 xff0c 并且UI是可以的 xff0c 并且支持树形展示 同时支持json格式展示 xff0c 最基本的命令行模式也支持 xff
  • 实现java项目idea打包发布至服务器(完整版)

    问题 xff1a 如何快速部署本地代码到服务器 xff1f 今天介绍的是使用idea的一款插件 Alibaba Cloud Toolkit 实现 xff0c 首先需要在自己的服务器上安装运行环境 xff0c 包括 xff1a jdk mav
  • Mac删除已卸载软件残留启动台的图标

    问题 xff1a mac在卸载一些非商店安装的软件 xff0c 图标可能会残留在启动台 xff0c 即使拖动到废纸篓也删除不掉 解决 xff1a 点击访达 前往 前往文件夹 2 输入 xff1a private var folders 然后
  • java日期的计算(当月剩余天数、获取日期当月的天数)

    日常开发中会遇到关于日期的计算比如 xff1a 当月的天数 两日期之间的天数 当月剩余天数等等 下方为关于日期计算的demo xff0c 后期会持续更新 获取日期当月的天数或某月总天数 获取日期当月的天数 64 param dateStr
  • 日常问题(1)——Mysql中not in 会过滤null值的行

    结论 xff1a 使用not in时应注意该字段是否存在null值得情况 xff0c 因为使用时会将null值得行过滤掉 not in使用时会过滤字段为null值得行 in 不会统计null值得行 xff0c 不受null值影响 原因 xf
  • 解决:Docker下运行Mysql出现:无法登陆问题以及无法加载身份验证的问题

    前言 用于帮助大家解决问题 xff0c 拒绝转载 问题 无法加载身份验证插件 caching sha2 password Authentication plugin span class token string 39 caching sh
  • Windows wsl2安装Ubuntu

    wsl Windows Subsystem for Linux 即适用于Windows的Linux子系统 xff0c 是一个实现在Windows 10 11上运行原生Linux的技术 wsl2 为其迭代版本 xff0c 可以更好的在Wind
  • MySQL删除表数据 MySQL清空表命令 3种方法

    一 MySQL清空表数据命令 xff1a truncate SQL语法 xff1a truncate table 表名 注意 xff1a 不能与where一起使用 truncate删除数据后是不可以rollback的 truncate删除数
  • HOG特征(Histogram of Gradient)总结

    在做的项目有用到HOG 43 SVM这一方面的知识 虽然很久之前的内容了 xff0c 所以记录一下 1 HOG特征 xff1a 方向梯度直方图 xff08 Histogram of Oriented Gradient HOG xff09 特
  • Nginx在windows和linux系统上安装和配置部署,有这篇就文章就够了

    Nginx是什么 xff1f Nginx是一个高性能的Web服务器和反响代理服务器 xff0c 也可以作为邮件代理服务器 题外话之什么是正向代理和反向代理 xff1f 正向代理 xff1a 类似一个跳板机 xff0c 代理访问外部资源 比如
  • OpenStack环境搭建(三:Computer与Controller节点的安装及配置)

    实验要求 xff1a 完成Virtual box平台安装 xff0c 会应用相关操作 xff1b 在virtual box虚拟平台上部署Fuel Master节点 xff1b 在virtual box虚拟平台上部署计算节点Computer
  • B站评论爬虫--爬取游戏主页评论

    由于公司需要监控到不同时间段用户观点的变化 xff0c 需要爬取各个平台下我们用户的评论 xff0c 因此 xff0c B站评论爬取的需求诞生啦 xff01 xff01 看了网上的其他教程 xff0c 都没有我这个类型的 xff08 大多数
  • 内网搭建 Pip 源方案之 Pypiserver

    前言 遇到开发环境是内网 xff0c 项目第一次搭建的时候 需要安装许多的python三方模块 除了手动一个个安装 xff0c 有时候还要处理相互依赖的模块 xff0c 费时费力 能不能像在 外网 环境一样 xff0c 在 内网 使用 pi
  • java中的字符串排序

    要求 xff1a 对 34 abc 34 34 fcc 34 34 egfd 34 34 asd 34 34 rtgh 34 34 deghk 34 34 fcc 34 字段进行排序 xff0c 要求满足其为升序排列同时每个字符串里也是升序