【Java】恺撒密码,stream流,方法引用

文章目录

    • 一、题目
    • 二、题解
      • 2.1、写法1
      • 2.2、写法2,stream流
      • 2.3、写法3,方法引用

一、题目

在这里插入图片描述
在这里插入图片描述

二、题解

2.1、写法1

普通写法, 遍历每个字符进行加密

 public static void main1 (String[] args) {Scanner sc = new Scanner(System.in);String strs = sc.nextLine();char[] chss = strs.toCharArray();for(int i = 0;i < chss.length; i++){if(chss[i] <= 'z' && chss[i] >= 'a'){chss[i]+=3;if(chss[i] > 'z'){chss[i]-=26;}}else if(chss[i] <= 'Z' && chss[i] >= 'A'){chss[i]+=3;if(chss[i] > 'Z'){chss[i]-=26;}}}for(char c : chss){System.out.print(c);}}

2.2、写法2,stream流

stream流写法,用map对每个字符进行加密处理

  • Arrays.stream() 只接收 对象数组或int long double数组所以不能用Arrays.stream()将char[]数组转换为流
  • 用 chars() 将 String 转换为 整数流
  • mapToObj() 将整数流映射 回 字符流
  //写法2public static void main2 (String[] args) {Scanner sc = new Scanner(System.in);String strs = sc.nextLine();//Arrays.stream() 只接收 对象数组或int long double数组//chars() 将String转换为 整数流//mapToObj 将整数流映射 回 字符流strs.chars().map(c -> {if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {c += 3;if ((c > 'z' && c <= 'z' + 3) || (c > 'Z' && c <= 'Z' + 3)) {c -= 26;}}return c;}).mapToObj(c -> (char) c).forEach(System.out::print);}

2.3、写法3,方法引用

在写法2的基础上

  • 将map方法(接收int类型,返回int类型)中的lambda表达式改写为方法引用
  • 静态方法引用, 类型::方法名
  • mapToObj() 将整数流映射 回 字符流
public class kaisaCode {//写法3 方法引用public static void main3 (String[] args) {Scanner sc = new Scanner(System.in);String strs = sc.nextLine();//静态方法引用strs.chars().map(kaisaCode::jiami).mapToObj(c -> (char) c).forEach(System.out::print);}//静态方法public static int jiami(int c){if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {c += 3;if ((c > 'z' && c <= 'z' + 3) || (c > 'Z' && c <= 'Z' + 3)) {c -= 26;}}return c;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/190774.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nacos 配置中心底层原理(1.X版本)

前言 Nacos 1.X版本 是长轮询 Nacos 2.X版本 是GRPC 长轮询 概念 客户端会轮询向服务端发出一个长连接请求&#xff0c;这个长连接最多30s就会超时&#xff0c;服务端收到客户端的请求会先判断当前是否有配置更新&#xff0c;有则立即返回&#xff0c;如果没有服务端会将这个…

vscode 推送本地新项目到gitee

一、gitee新建仓库 1、填好相关信息后点击创建 2、创建完成后复制 https&#xff0c;稍后要将本地项目与此关联 3、选择添加远程存储库 4、输入仓库地址&#xff0c;选择从URL添加远程存储仓库 5、输入仓库名称&#xff0c;确保仓库名一致

redis安装(Windows和linux)

如何实现Redis安装与使用的详细教程 Redis 简介 Redis是一个使用C语言编写的开源、高性能、非关系型的键值对存储数据库。它支持多种数据结构&#xff0c;包括字符串、列表、集合、有序集合、哈希表等。Redis的内存操作能力极强&#xff0c;其读写性能非常优秀&#xff0c;且…

动态头像如何制作?这个方法请收藏

照片是记录生活的一种方式&#xff0c;但是静态图片有时候不能够完全表达我们的情感。而动态的图片能够让图片以更生动的方式来展示我们的想象力和内心情感。那么&#xff0c;大家知道动态图片制作的方法有哪些吗&#xff1f;使用gif动画制作&#xff08;https://www.gif.cn/&a…

BGP的基础知识

BGP——边界网关协议 IGP——内部网关协议——OSPF、RIP、ISIS EGP——外部网关协议——EGP、BGP 边界网关协议BGP是一种实现自治系统AS之间的路由可达&#xff0c;并选择最佳路由的路径矢量路由协议。目前在IPV4环境下主要使用BGPV4&#xff0c;目前市场上也存在BGPV4&…

OpenAI GPT-4 Turbo发布:开创AI新时代

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; IT杂谈 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言一. GPT-4 Turbo的突破1.1上下文长度和控制手段的加强&#xff1a;1.2多模态支持&#xff1a…

【2】SM2验签工具和RSA验签工具

0X01 前言 最近看了好多验签工具&#xff0c;感觉不是很好用&#xff0c;就自己造了个。 0x02 工具功能介绍 对SM2算法进行验签和RSA算分进行验签&#xff0c;签名值可以是base64&#xff0c;也可以是十六进制。 兼容各种输入。 0x03 工具使用 RSA 验签 SM2 验签 0x04 工具…

【JavaEE初阶】 CSS的引入方式和选择器

文章目录 &#x1f332;CSS是什么&#xff1f;&#x1f340;CSS基础语法规范&#x1f384;引入方式&#x1f6a9;内部样式表&#x1f6a9;行内样式表&#x1f6a9;外部样式 &#x1f334;代码风格&#x1f333;选择器&#x1f6a9;选择器的种类&#x1f6eb;基础选择器&#x1…

原型网络Prototypical Network的python代码逐行解释,新手小白也可学会!!-----系列2

文章目录 一、原始代码二、每一行代码的详细解释 一、原始代码 labels_trainData ,labels_testData load_data() wide labels_trainData[0][0].shape[0] length labels_trainData[0][0].shape[1] for label in labels_trainData.keys():labels_trainData[label] np.reshap…

【从入门到起飞】JavaSE—IO流(1)字节输入流字符输出流

&#x1f38a;专栏【JavaSE】 &#x1f354;喜欢的诗句&#xff1a;天行健&#xff0c;君子以自强不息。 &#x1f386;音乐分享【如愿】 &#x1f384;欢迎并且感谢大家指出小吉的问题&#x1f970; 文章目录 &#x1f33a;概述&#x1f33a;作用&#x1f33a;分类&#x1f33…

持续集成交付CICD:Jenkins通过API触发流水线

目录 一、理论 1.HTTP请求 2.调用接口的方法 3.HTTP常见错误码 二、实验 1.Jenkins通过API触发流水线 三、问题 1.如何拿到上一次jenkinsfile文件进行自动触发流水线 一、理论 1.HTTP请求 &#xff08;1&#xff09;概念 HTTP超文本传输协议&#xff0c;是确保服务器…

【PTA题目】6-13 求叠数(递归版) 分数 10

6-13 求叠数(递归版) 分数 10 全屏浏览题目 切换布局 作者 李祥 单位 湖北经济学院 请编写递归函数&#xff0c;生成叠数。 例如&#xff1a;Redup(5,8)88888 函数原型 long long Redup(int n, int d); 说明&#xff1a;参数 n 为重复次数(非负整数)&#xff0c;d 为数字…