博客
关于我
7-8 英文单词排序 (25 分)
阅读量:625 次
发布时间:2019-03-12

本文共 2065 字,大约阅读时间需要 6 分钟。

为了完成这个任务,我们需要编写一个Java程序,该程序可以从标准输入中读取英文单词,并将它们按长度排序。如果两个单词的长度相同,则按它们的出现顺序输出。这个任务可以通过使用Java的小程序框架来实现。

步骤一:读取输入

我们从标准输入读取数据,直到遇到标志性字符'#'。在读取过程中,我们将每个单词存储在一个字符串列表中。

import java.util.ArrayList;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList
words = new ArrayList<>();
while (scanner.hasNext("#")) {
String word = scanner.next();
words.add(word);
}

步骤二:自定义排序逻辑

我们需要按照单词的长度进行排序。如果两个单词的长度相同,则保持它们在输入时的相对顺序。为此,我们可以定义一个自定义的比较器。

words.sort((w1, w2) -> {
int len1 = w1.length();
int len2 = w2.length();
// 如果一个单词的长度小于另一个,放在前面
if (len1 != len2) {
return Integer.compare(len1, len2);
}
// 如果长度相同,按出现顺序排列
return words.indexOf(w1) - words.indexOf(w2);
});

步骤三:输出结果

排序完成后,我们将结果依次输出到标准输出,每个单词后面跟一个空格。

for (String word : words) {
System.out.println(word + " ");
}

步骤四:完整的代码

综上所述,完整的Java程序如下:

import java.util.ArrayList;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList
words = new ArrayList<>();
while (scanner.hasNext("#")) {
String word = scanner.next();
words.add(word);
}
// 自定义排序逻辑
words.sort((w1, w2) -> {
int len1 = w1.length();
int len2 = w2.length();
// 先比较长度
if (len1 != len2) {
return Integer.compare(len1, len2);
}
// 长度相同,按输入顺序排列
return words.indexOf(w1) - words.indexOf(w2);
});
// 输出排序后的结果
for (String word : words) {
System.out.println(word + " ");
}
}
}

Pedido de responsabilidade

Espero que este programa cumpra com os requisitos especificados. Caso haja algum erro ou necessidade de ajustes, por favor, informe-me.

转载地址:http://bmwaz.baihongyu.com/

你可能感兴趣的文章
node, nvm, npm,pnpm,以前简单的前端环境为什么越来越复杂
查看>>
Node-RED中Button按钮组件和TextInput文字输入组件的使用
查看>>
Node-RED中Switch开关和Dropdown选择组件的使用
查看>>
Node-RED中使用html节点爬取HTML网页资料之爬取Node-RED的最新版本
查看>>
Node-RED中使用JSON数据建立web网站
查看>>
Node-RED中使用json节点解析JSON数据
查看>>
Node-RED中使用node-random节点来实现随机数在折线图中显示
查看>>
Node-RED中使用node-red-browser-utils节点实现选择Windows操作系统中的文件并实现图片预览
查看>>
Node-RED中使用node-red-contrib-image-output节点实现图片预览
查看>>
Node-RED中使用node-red-node-ui-iframe节点实现内嵌iframe访问其他网站的效果
查看>>
Node-RED中使用Notification元件显示警告讯息框(温度过高提示)
查看>>
Node-RED中使用range范围节点实现从一个范围对应至另一个范围
查看>>
Node-RED中实现HTML表单提交和获取提交的内容
查看>>
Node-RED中将CSV数据写入txt文件并从文件中读取解析数据
查看>>
Node-RED中建立TCP服务端和客户端
查看>>
Node-RED中建立Websocket客户端连接
查看>>
Node-RED中建立静态网页和动态网页内容
查看>>
Node-RED中解析高德地图天气api的json数据显示天气仪表盘
查看>>
Node-RED中连接Mysql数据库并实现增删改查的操作
查看>>
Node-RED中通过node-red-ui-webcam节点实现访问摄像头并截取照片预览
查看>>