java:凯撒密码及String的应用
一,凯撒密码
古罗马皇帝凯撒在打仗时曾使用过以下方法加密军事情报

现在用java实现
程序设计思想:
1,字符串首先要转化为字符数组,才能依次加密
2,当原来的字符为X,Y,Z时,加密后要转化为A,B,C
3,为了传递信息,应该只加密英文字母,对于无意义的空格等字符不应加密
程序流程图

源程序代码
/**
*
*/
package 课堂4;
import java.util.Scanner;
/**
* @author 信1605-3吴鑫20163471
*/
public class Ceasarcipher
{
/**
* @param args
*/
public static void main(String args[])
{// TODO 自动生成的方法存根
Scanner sc=new Scanner(System.in);//用户输入字符串
System.out.println("请输入任意英文字符串:");
String s=sc.nextLine();
sc.close();
char c[]=s.toCharArray();//将字符串转换为字符数组 for(int i=0;i<s.length();i++)//将每个字符依次加密
{
if(c[i]>=65&&c[i]<=90||c[i]>=97&&c[i]<=122)//如果是英文字母就执行凯撒加密
c[i]=(char)(c[i]+3); if((c[i]>90&&c[i]<97)||c[i]>122)//当字母为x,y,z时,转化为a,b,c
c[i]=(char)(c[i]-26);
} String result="该英文字串加密后的密文为:\n";
for(int i=0;i<s.length();i++)//将加密后的字符连接成字符串输出
{
result+=c[i];
}
System.out.println(result);
}
}
程序运行结果

java:凯撒密码及String的应用的更多相关文章
- 凯撒密码加密解密--JAVA实现(基础)
凯撒密码一种代换密码,据说凯撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码.凯撒密码的基本思想是:通过把字母移动一定的位数来实现加密和解密.明文中的所有字母都在字母表上向后(或向前) ...
- JAVA第一次实验 ——凯撒密码
课程:Java程序设计 班级:1352 姓名:黄伟业 学号:20135215 成绩: 指导教师:娄嘉鹏 实验日期:2015.4.15 实验密级: 预习程度: 实验时间:19: ...
- JAVA第一次实验 ——凯撒密码的实现
JAVA实验一 编写程序实现凯撒密码 201352330 潘俊洋 一.实验说明 凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加 ...
- 20155210 潘滢昊 Java第一次实验---凯撒密码
Java第一次实验---凯撒密码 实验内容 实现凯撒密码,并进行测试. 实验代码 import java.io.*; import java.util.Scanner; public class ks ...
- Java 第十一届 蓝桥杯 省模拟赛 凯撒密码加密
凯撒密码加密 题目 问题描述 给定一个单词,请使用凯撒密码将这个单词加密. 凯撒密码是一种替换加密的技术,单词中的所有字母都在字母表上向后偏移3位后被替换成密文.即a变为d,b变为e,-,w变为z,x ...
- 凯撒密码 CH Round #57 - Story of the OI Class
题目:http://ch.ezoj.tk/contest/CH%20Round%20%2357%20-%20Story%20of%20the%20OI%20Class/凯撒密码 题解:刚开始想map, ...
- FCC JS基础算法题(13):Caesars Cipher(凯撒密码)
题目描述: 下面我们来介绍风靡全球的凯撒密码Caesar cipher,又叫移位密码.移位密码也就是密码中的字母会按照指定的数量来做移位.一个常见的案例就是ROT13密码,字母会移位13个位置.由'A ...
- C语言:凯撒密码的实现
凯撒密码的实现(10分)题目内容: 凯撒密码(caeser)是罗马扩张时期朱利斯?凯撒(Julius Caesar)创造的,用于加密通过信使传递的作战命令.它将字母表中的字母移动一定位置而实现加密. ...
- [CTF]凯撒密码
[CTF]凯撒密码 --------------------- 作者:___Blue_H 来源:CSDN 原文:https://blog.csdn.net/qq_37653144/article ...
随机推荐
- eclipse 项目引入第三方jar包 3种方法
我们在用Eclipse开发程序的时候,经常要用到第三方jar包.引入jar包不是一个小问题,由于jar包位置不清楚,而浪费时间.下面配图说明3种Eclipse引入jar包的方式. 1.最常用的普通操作 ...
- linux下svn命令大全(转)
1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:s ...
- Ansible系列(二):选项和常用模块
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
- Spring-hibernate-BaseDao
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w ...
- Linux 安装 mysql 并配置
1.下载 下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads 下载版本:我这里选择的5.6.33,通用版,linux下64位 也可 ...
- GCD之信号量机制一
在使用NSOperationQueue进行多线程编程时,可通过[queue setMaxConcurrentOperationCount:5]来设置线程池中最多并行的线程数,在GCD中信号量机制也和它 ...
- java 面向对象 2
一.JAVA类的定义 JAVA里面有class关键字定义一个类,后面加上自定义的类名即可.如这里定义的person类,使用class person定义了一个person类,然后在person这个类的类 ...
- Apache Spark 2.2.0 中文文档 - SparkR (R on Spark) | ApacheCN
SparkR (R on Spark) 概述 SparkDataFrame 启动: SparkSession 从 RStudio 来启动 创建 SparkDataFrames 从本地的 data fr ...
- mybatis枚举映射成tinyint
第一步:定义顶级枚举接口 public interface BaseEnum<E extends Enum<?>, T> { public T getCode(); publi ...
- 从Thread.start()方法看Thread源码,多次start一个线程会怎么样
这篇文章作为Thread类源码剖析的补充,从一个侧面来看Thread源码.也解答了面试高频问题:"多次start一个线程会怎么样?" 答案是:java.lang.IllegalTh ...