字符串中数据的排序

2023-05-16

题目:有一个字符串:“91 27 46 38 50”,请写程序实现最终输出结果:“27 38 46 50 91”。

思路:


① 给数据排序,我们首先想到的就是数组的排序方法,Arrays.sort(arr);
② 现在题目给出的是一个字符串,并非数组,而我们需要将字符串中用空格隔开的这些数据都一一对应地复制到一个数组中,进行排序;
③ 字符串中的每个数据都要搬运到一个新的数组中,一定是要用到 for 循环进行遍历,数组遍历的前提得有终止条件,也就是需要知道数组长度,而这个数组的长度正是我们字符串中数据的个数;
④ 问题就转移到了如何获取到数据的个数,不要忘了我们的字符串也是有数组的,题目给出的是字符串,接下来我们需要将字符串的数据放到字符串数组中;
⑤ 创建一个字符串数组,这里给我们提供了一个方法 split(),字符分隔符,它可以将字符串中的每一个数据通过空格分隔开,如 String[] str = s.split(" ");
⑥ 创建一个 int 数组,用于后续排序,int 数组的长度即字符串数组的长度,通过 str.length 获取;
⑦ 现在数组的长度知道了,我们就可以利用 for 循环为数组添加数据,自然是将字符串数组的每个数据依次赋值给 int 数组,赋值过程我们可以发现这两个数组中的数据根本不是同一种数据类型,所以不可能直接赋值,这里通过上面讲到的 String 类型转换为 int 类型方法对其进行转换,然后循环赋值;
⑧ 得到数组之后,我们对该数组进行排序,Arrays.sort(arr);
⑨ 排序之后还没结束,因为我们最终要的结果并非一个数组,它还是要输出一个字符串,且以空格分隔,采用拼接字符串的方式实现,之前我们学到过一个 StringBuilder,利用它的 append() 方法将字符串拼接成我们想要的格式,对于数组中的数据,依然采用 for 循环进行遍历,将遍历到的结果添加至字符串尾,输出结果。

//Test.java

package com.zxe;

import java.util.Arrays;

public class Test {
    public static void main(String[] args) {
        String s = "91 27 46 38 50";
        String[] str = s.split(" ");
        int[] arr = new int[str.length];
        for (int i = 0; i < arr.length; i++) {
            int k = Integer.parseInt(str[i]);
            arr[i] = k;
        }
        Arrays.sort(arr);

        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < arr.length; i++) {
            if (i == args.length - 1) {
                sb.append(arr[i]);
            } else {
                sb.append(arr[i]).append(" ");
            }
        }
        String result = sb.toString();

        System.out.println(result);
    }
}

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

字符串中数据的排序 的相关文章

  • VIM-配置-.vimrc

    前言 在使用vim的时候我们可以输入 xff1a set nu 显示行号 xff0c 但每次都输一遍操作就显得冗余 将这段命令写入vimrc就可以避免重复操作 在linux环境下 xff0c 配置文件一般都叫 rc xff0c rc是 ru
  • mysql中关联json字段查询,将json存储的数组转换成一张临时表

    mysql中的json字段中存了一个数组 要将这个数组中符合条件的数据取出来 xff0c 数据库结构如下 xff1a CREATE TABLE 96 school 96 96 id 96 bigint NOT NULL AUTO INCRE
  • 树莓派入坑笔记

    一 安装树莓派官方操作系统Raspbian stretch步骤 xff1a 准备好SD卡 xff08 大小一般16GB及以上 xff09 准备SD卡的读卡器 准备树莓派的镜像 xff1a 链接 xff1a https pan baidu c
  • yolov5知识笔记

    1 在yolov的同等目录下创建一个自己的数据集文件夹 xff0c 存放自己的数据集 xff08 dataset xff09 xff1b 2 在dataset数据文件夹里 xff08 coco128 xff09 创建 train2017 存
  • Ceph安装步骤2——ceph存储池

    Ceph安装步骤1完成之后 xff0c 即可进行该步骤的操作 本文中以对sas池进行操作为例 一 创建Ceph Pool 1 计算每个池所需要的PG数目 在创建池之前 xff0c 首先需要计算PG数目 xff08 简单来说 xff0c PG
  • scrapy安装笔记并使用

    1 安装方法 xff1a Linux Mac xff1a pip install scrapy windows 简单使用直接pip install scrapy即可 1 pip install wheel 用于安装twisted 2 下载t
  • rosbag库的安装

    Output 1 python3 m pip install bagpy 2 python3 m pip install roslz4 extra index url https rospypi github io simple 1 安装a
  • 下载安装dingding

    百度搜索钉钉官网 xff1a https page dingtalk com wow z dingtalk simple ddhomedownlaod 下载安装包 xff1a com alibabainc dingtalk 1 4 0 20
  • su认证失败

    sudo passwd
  • 2021.12.30遇到的错误:No module named ‘paddle‘

    实际上已经安装了paddlepaddle xff0c 但不知为何又报这个错误 根据提示可知原因为未安装paddle 于是又去安装百度飞桨官网安装paddle 安装命令为 python span class token operator sp
  • 计组第六课

    汇编语言的组成 1 汇编指令 xff1a 机器码的助记符 xff0c 有对应机器码 2 伪指令 xff1a 无对应机器码 xff0c 由编译器执行 xff0c 没有对应机器码 3 其他符号 xff1a 如 43 等 xff0c 由编译器识别
  • GitLab秘钥添加

    前提 xff1a 下载Git Bash软件 xff0c 并拥有GitLab账号 1 选择用户主目录 xff08 C 用户 用户名 xff09 下 xff0c 新建一个文件夹 直接修改其文件名为 ssh会提示 必须输入文件名 xff0c 修改
  • C++/C sort函数用法(详细),cmp的构造--一学就会,一用就对

    sort函数 sort是c 43 43 STL标准库中提到的基于快速排序的排序函数 xff0c 在做题的时候使用sort函数很方便 xff0c 使用sort要使用 include 快速排序具有不稳定性 不稳定性是指 xff0c 对于指定区域
  • 远程桌面蓝屏解决办法

    远程桌面蓝屏解决方法 原理 xff1a 重新启动远程桌面进程 操作 xff1a Ctrl Alt End 进入任务管理器 选择expolrer exe结束进程 切换到C盘的Windows目录 运行expolrer exe
  • DPU环境配置

    DPU 型号 xff1a MBF2M516A CEEOT xff08 全高半长 xff08 FHHL xff09 DPU xff09 DPU 类型 xff1a NVIDIA BlueField 2 Ethernet DPU 操作系统 xff
  • s3cmd安装及配置

    一 安装s3cmd 安装命令如下所示 xff1a yum y install python pip pip install s3cmd 二 配置s3cmd 配置s3cmd有两种方式 xff1a 1 使用s3cmd configure方式配置
  • C++中cin输入过程中如何处理ctrl+c输入

    引子 今天在写一个while true 循环程序 xff0c 程序中有用到SetConsoleCtrlHandler函数处理CTRL 43 C输入 xff0c 用到cin输入时不小心按下ctrl 43 c进入了无限循环 xff0c cin不
  • 如果正确修改数据库编码为utf8仍然无法插入中文可以试试用Navicat插入数据

    我的MySQL编码已经修改为utf8 但是仍然无法插入中文数据 如下 这是我的MySQL编码格式 此时插入中文数据就会报错 我的解决办法是使用Navicat插入数据 使用eclipse连接并输出后可以正常执行 lt 64 page lang
  • 如何用LaTeX写一个PPT

    如何用LaTeX写一个PPT 说到写PPT大家一般会想到的是微软的Microsoft PowerPoint xff0c 因为他更易于制作并且拥有丰富的动画 xff0c 但是当你需要制作一个学术相关的ppt时 xff0c 你需要更好的排版以及
  • Ubuntu 22.04图形界面的卸载

    如果你想在 Ubuntu 上卸载图形界面 xff0c 可以按照以下步骤操作 xff1a 进入终端界面 xff1a 按下 Ctrl 43 Alt 43 F3 xff08 或者其他 F1 F6 xff09 可以切换到终端界面 xff0c 然后使

随机推荐

  • 百鸡百钱问题

    我国古代数学家张丘建在 算经 一书中曾提出过著名的 百钱买百鸡 问题 该问题叙述如下 xff1a 鸡翁一 xff0c 值钱五 xff1b 鸡母一 xff0c 值钱三 xff1b 鸡雏三 xff0c 值钱一 xff1b 百钱买百鸡 xff0c
  • 2.【已修复】windows10更新:你的设备中缺少重要的安全和质量修复。

    问题 xff1a 由于自己给笔记本重装Windows10 专业版系统 xff0c 用一段时间后发现系统更新失败 xff0c 更新错误 xff1a 你的设备中缺少重要的安全和质量修复 危 xff1a 电脑有问题先备份资料 解决问题 xff1a
  • Python实现用户注册登录功能

    一 环境 python3 43 vscode 二 文件 xff1a 程序文件 用户 管理员 注册 登陆 py 启动标记文件 flag txt gt 文件内容 xff1a 0 三 程序步骤分块 xff1a 主程序入口 初次启动后 xff0c
  • 5.MySQL建立表的关系(外键)

    目录 1 前言 2 表与表关系 1 一对多关系 2 多对多关系 xff1a 3 一对一关系 3 对表总结 xff1a 4 补充 xff1a 1 修改表 2 复制表 1 前言 1 方法 xff1a foreign key xff1a 外键 外
  • 41.Django之web注册登录修改注销功能实现

    目录 1 django配置步骤 2 django链接数据库 MySQL 3 利用orm创建数据库表 4 django的myweb01项目中的url py添加路由 5 django的app01应用中的views py添加逻辑函数 6 temp
  • 1. 403 错误 html

    目录 1 效果图 2 code 3 使用 1 效果图 2 code lt DOCTYPE html gt lt html lang zh gt lt head gt lt meta charset utf 8 gt lt title gt
  • linux vi/vim命令学习

    一 依据个人理解 xff0c vi和vim主要有以下几点区别 xff1a 1 vim命令编辑脚本时 xff0c 能够检查出一些基本的语法错误 xff0c 比如括号匹配等 xff0c vi命令不具有这一功能 2 一般linux系统安装时都是自
  • 2. 404 错误 html

    目录 1 效果图 2 code 3 使用 1 效果图 2 code lt DOCTYPE html gt lt html gt lt head gt lt meta charset utf 8 gt lt title gt 404 lt t
  • 3. 500 服务器异常 html

    目录 1 效果图 2 code 1 效果图 2 code lt DOCTYPE html gt lt html gt lt head gt lt meta charset utf 8 gt lt title gt 500 lt title
  • 蓝桥杯之单片机学习(三)——共阳数码管的静态显示

    文章目录 一 训练任务二 训练重点三 训练准备3 1 原理图展示3 2 数字对照表3 3 数码管分路3 4 一些解释 四 代码实现注意事项 一 训练任务 在CT107D单片机综合训练平台上 xff0c 8个数码管分别依次显示0 9的值 xf
  • Dockerfile 定制专属镜像|果断收藏

    前言 大家好 xff0c 本文是对 Docker 自定义镜像的详细讲解 xff0c 讲解了如何进行构建自己的 Docker 镜像以及 Dockerfile 的操作指令 希望对大家有所帮助 一 使用 Dockerfile 定制镜像 1 1 D
  • 蓝桥杯python组练题第六天——七段码——蓝桥杯官网题库

    单词分析 题目描述 本题为填空题 xff0c 只需要算出结果后 xff0c 在代码中使用输出语句将所填结果输出即可 不建议写代码 小蓝要用七段码数码管来表示一种特殊的文字 上图给出了七段码数码管的一个图示 xff0c 数码管中一共有 7 段
  • Ubuntu22.04开机网络无法连接,ping不通解决方案

    从前天开始 xff0c 虚拟机不知道为什么开机之后就无法联网 xff0c 也ping不通 xff0c 而且ifconfig显示我只有lo 没有ens33 xff0c 之后就开始找解决方案 失败的方案有很多 xff0c 比如 xff1a 重置
  • 计蒜客 T1096 石头剪刀布--C语言

    计蒜客 T1096 石头剪刀布 题目 石头剪刀布是常见的猜拳游戏 石头胜剪刀 xff0c 剪刀胜布 xff0c 布胜石头 如果两个人出拳一样 xff0c 则不分胜负 一天 xff0c 小 AA 和小 BB 正好在玩石头剪刀布 已知他们的出拳
  • AT89C52流水灯+外部中断INT0+定时器(汇编语言)

    AT89C52流水灯 43 外部中断INT0 43 定时器 xff08 汇编语言 xff09 任务要求 用 AT89S52 单片机控制彩灯 xff08 流水灯 xff09 图形及继电器 即 xff1a AT89S52 单片机上电时控制由发光
  • 【Verilog】通过任务(task)完成3个8bit数据的冒泡排序

    题目 xff1a 设计一个模块 xff0c 通过任务完成3个8位2进制输入数据的冒泡排序 要求 xff1a 时钟触发任务的执行 xff0c 每个时钟周期完成一次数据交换的操作 Verilog代码 xff1a module sort inpu
  • 官网下载JAVA的JDK11版本(下载、安装、配置环境变量)

    目录 前言必读 xff1a 一 下载JDK11 1 先去浏览器搜索 2 选择Products 3 Java 4 往下滑找到Oracle JDK 然后点击 5 往下滑找到Java11 xff0c 再选择自己的操作系统 6 选择exe这个直接安
  • linux命令学习之————ls,pwd,cd,hostnamectl,systemctl

    这几条命令之间没有什么联系 xff0c 随便写写 一 ls命令 1 显示当前目录下所包含的文件或目录名 xff1a ls 2 显示当前目录下所包含的文件或目录的详细信息 xff1a ls l 3 显示当前目录下所包含的文件或目录的详细信息
  • win10系统重装(超简单)

    目录 前言 操作步骤 第一步 xff1a 格式化硬盘 第二步 xff1a 硬盘重新分区 固态硬盘分区 机械硬盘分区 完成效果展示 第三步 xff1a 把ISO镜像文件写入固态硬盘 第四步 xff1a 关机拔u盘 第五步 xff1a 开机重装
  • 字符串中数据的排序

    题目 xff1a 有一个字符串 xff1a 91 27 46 38 50 xff0c 请写程序实现最终输出结果 xff1a 27 38 46 50 91 思路 xff1a 给数据排序 xff0c 我们首先想到的就是数组的排序方法 xff0c