字符串加密
问题:
古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:
请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想、程序流程图、源代码、结果截图。
设计思想:
输入一个字符串,将字符串每个位置的字符强制转化为int型,将所得到的ascll代码加3,a-z的Ascll码为97-122,如果加3之后超过122则从97开始。
最后将字符串每个位置用+3之后的字符代替。输出加密后的字符串。解密字符串原理同上。
流程图:
源代码:
//翟超科 信1605-3 20163607
import java.util.Scanner;
public class JiamiString
{
public static String s;
static Scanner in=new Scanner(System.in);
public static void jiami()
{
System.out.println("请输入一个字符串:");
s=in.next();
System.out.println("加密后的字符串为:");
for(int i=0;i<s.length();i++)
{
int t=s.charAt(i);
if(t+3>122&&(t+3)<126)
{
t=t-29;
s=s.replace(s.charAt(i),(char)t);
}
if(t==32)
{
s=s.replace(s.charAt(i),' ');
}
else
{
s=s.replace(s.charAt(i),(char)(t+3));
}
}
System.out.println(s);
}
static void jiemi()
{
System.out.println("请输入一个加密的字符串:");
s=in.next();
System.out.println("解密后的字符串为:");
for(int i=0;i<s.length();i++)
{
int t=s.charAt(i);
if(t-3<97)
{
t=t+29;
s=s.replace(s.charAt(i),(char)t);
}
if(t==32)
{
s=s.replace(s.charAt(i),' ');
}
else
{
s=s.replace(s.charAt(i),(char)(t-3));
}
}
System.out.println(s);
}
static void print()
{
System.out.println("欢迎来到字符串解密系统");
System.out.println(" 1、字符串加密");
System.out.println(" 2、字符串解密");
System.out.println(" 3、退出");
System.out.println("请输入相应的操作:");
}
static void run()
{
while(true)
{
print();
int t=in.nextInt();
switch(t)
{
case 1:
jiami();
break;
case 2:
jiemi();
break;
case 3:
System.out.println("退出成功");
System.exit(0);
}
}
}
public static void main(String[] args)
{
// TODO 自动生成的方法存根
run();
}
}
程序截图:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· 用 DeepSeek 给对象做个网站,她一定感动坏了
· DeepSeek+PageAssist实现本地大模型联网
· 手把手教你更优雅的享受 DeepSeek
· 腾讯元宝接入 DeepSeek R1 模型,支持深度思考 + 联网搜索,好用不卡机!
· 从 14 秒到 1 秒:MySQL DDL 性能优化实战