20145325张梓靖 实验一 "Java开发环境的熟悉"
20145325张梓靖 实验一 "Java开发环境的熟悉"
程序设计过程
实验内容
- 实现凯撒密码,并进行测试
编写代码
- 使用
java.util.Scanner
进行输入,而它的方法里没有针对char的直接转换,所以选择输入数组定义为 String 类型。 - 在运算过程中,需要将输入的字符串转变为字符的ASC11码,这样才可以对每个字符进行运算、转换。
- 用 string.charAt(0),先收集到字符串中的每个字符(因为 string不能直接转化成ASC11相加减,只能先把 string转化为字符,再进行)
- 然后对字符进行强制类型转化为 int ,这样才可以继续对字符的ASC11码进行运算。
- 把转化后运算完的结果放入新定义的int数组中,必须定义int的数组,因为强制转换成了int,就只能用int的来装数据。
- 当然,也可以再强制转换成char,只不过要把结果放入 char 数组里面,最后直接循环输出数组结果就好了。
- 如果不直接再次强制转换成char的话,就在输出的时候再强制转化成 char 类型的就好。
- 代码第一代:
import java.util.Scanner;
public class ExamOne {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String[] ming=new String[100];
char[] mid=new char[100];
int[] mi=new int[100];
int time=0;
int i=0;
for( i=0;true;i++){
System.out.printf("请输入第%d 字符%n",i);
ming[i]=scanner.next();
if(ming[i].charAt(0)=='#') {
break;
}
}
System.out.println("输入完毕了");
time=i;
System.out.println("i="+time);
for( i=0;i<time;i++){
System.out.printf("转换第%d个字母%n",i);
mid[i]=ming[i].charAt(0);
mi[i]=((int)mid[i]-'a'+3)%26+'a';
System.out.printf("转换第%d个字母成功%n",i);
}
System.out.println("转换完了");
for( i=0;i<time;i++){
System.out.printf("输出第%d个字母%n",i);
System.out.println((char)mi[i]);
}
}
}
- 可通过直接空格的输入,不用每次输出一句话再输入字符。例,a b #(#是作为输入结束字符,不算作需进行转换的字符)
for( i=0;true;i++){
ming[i]=scanner.next();
if(ming[i].charAt(0)=='#') {
break;
}
}
输入每一个字符时,必须用空格或者换行隔开,这是在选用 next 就决定好了的,因为没有 nextChar 的方法。
但当直接用string.charAt()取得字符创中的每一个字符,这样就可以直接输入一串字符,不用空格或换行分隔了
代码第二代:
public class ExamOne1 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String ming="";
char[] mid=new char[100];
int[] mi=new int[100];
int time=0;
int i=0;
System.out.println("请输入每个字符");
ming=scanner.nextLine();
System.out.println("输入完毕了");
time=ming.length();
System.out.println("i="+time);
for( i=0;i<time;i++){
System.out.printf("转换第%d个字母%n",i);
mid[i]=ming.charAt(i);
mi[i]=((int)mid[i]-'a'+3)%26+'a';
System.out.printf("转换第%d个字母成功%n",i);
}
System.out.println("转换完了");
for( i=0;i<time;i++){
System.out.printf("%c",(char)mi[i]);
}
}
}
- 将多余补充的输出删去
- 代码最终版:
public class ExamOne1 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String ming="";
char[] mid=new char[100];
int[] mi=new int[100];
int time=0;
int i=0;
System.out.println("请输入明文");
ming=scanner.nextLine();
time=ming.length();
for( i=0;i<time;i++){
mid[i]=ming.charAt(i);
mi[i]=((int)mid[i]-'a'+3)%26+'a';
}
System.out.println("密文为:");
for( i=0;i<time;i++){
System.out.printf("%c",(char)mi[i]);
}
}
}
- 代码终极版:
import java.util.Scanner;
class Caesar{
public static char[] mid=new char[100];
public static int[] code=new int[100];
public static int time=0;
public static int i=0;
public static void EncryptWrite(String write){
time=write.length();
for( i=0;i<time;i++){
mid[i]=write.charAt(i);
code[i]=((int)mid[i]-'a'+3)%26+'a';
}
System.out.println("密文为:");
for( i=0;i<time;i++){
System.out.printf("%c",(char)code[i]);
}
}
}
public class ExamOne1 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String write="";
System.out.println("请输入明文");
write=scanner.nextLine();
Caesar.EncryptWrite(write);
}
}
调试代码
- 使用 debug ,在循环处设置条件为 i==5 的断点
- 调试程序,输入 hallojava ,点击 Resume,快速执行到断点所在处
- 此时结果显示为
- 点击 Step Over,单步执行
- 最终结果为
- 直接用 run显示结果
- 使用命令行进行编译与执行
20145325张梓靖 实验一 "Java开发环境的熟悉"的更多相关文章
- 20145325张梓靖 实验三 "敏捷开发与XP实践"
20145325张梓靖 实验三 "敏捷开发与XP实践" 程序设计过程 实验内容 使用 git 上传代码 git上传中遇到的问题 使用 git 相互更改代码 实现代码的重构 git ...
- 20145325张梓靖 实验五 "JAVA的网络编程"
20145325张梓靖 实验五 "JAVA的网络编程" 实验内容 使用 JVAV语言 进行网络编程 对明文进行加密 设计过程 我完成的是客户端,服务端同伴 20145308刘昊阳 ...
- 20145325张梓靖 实验四 "Andoid开发基础"
20145325张梓靖 实验四 "Andoid开发基础" 实验内容 使用 Android Studio 设计"Hello" 设计过程 创建项目 选择.xml中的 ...
- 20145325张梓靖 实验二"Java面向对象程序设计"
20145325张梓靖 实验二"Java面向对象程序设计" 程序设计过程 实验内容 使用TDD的方式设计实现复数类 Complex 编写代码 设计实现复数类 Complex,复数类 ...
- 20145205 实验一 Java开发环境的熟悉
实验内容 命令行下Java程序开发 IDEA下Java程序开发.调试 练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) 实现凯撒密码,并进行测试 实验要求 使用JDK编译 ...
- 实验一 Java开发环境的熟悉
实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没 ...
- 20145308刘昊阳 《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20145308刘昊阳 <Java程序设计>实验一报告 实验名称 Java开发环境的熟悉 实验内容 使用JDK编译.运行简单的Java程序 2.使用Eclipse 编辑.编译.运行.调试J ...
- 实验一Java开发环境的熟悉
实验一Java开发环境的熟悉 实验内容 •命令行下Java程序开发 •IDEA下Java程序开发.调试 •练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) •实现凯撒密码 ...
- 20145225《Java程序设计》实验一 Java开发环境的熟悉(Linux + Eclipse)
20145225<Java程序设计> 实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑 ...
随机推荐
- MQTT的学习研究(十四) MQTT moquette 的 Callback API 消息发布订阅的实现
在moquette-mqtt中提供了回调callback模式的发布和订阅但是在订阅之后没有发现有消息接收的方法,参看moquette-mqtt中Block,Future式的发布订阅基础是callbac ...
- Android ImageResizer:inSampleSize
import android.annotation.TargetApi; import android.content.Context; import android.content.res.Reso ...
- T-SQL数据库备份
/*1.--得到数据库的文件目录 @dbname 指定要取得目录的数据库名 如果指定的数据不存在,返回安装SQL时设置的默认数据目录 如果指定NULL,则返回默认的SQL备份目录名 */ /*--调用 ...
- checkbox的name与JavaBean的交互时发现的一个现象
一个页面: <form action="reg.jsp" method="post"> <ul> <li>算法选择</ ...
- .net各版本framework官方下载地址
版本 链接 说明 Microsoft .NET Framework 4(独立安装程序) https://www.microsoft.com/zh-cn/download/details.aspx?id ...
- python3安装后无法使用退格键的问题
# 安装readline模块 yum -y install readline-devel # 进入Python安装目录 cd /usr/python/Python- # 重新安装 ./configur ...
- talib 中文文档(十四):Math Transform Functions 数学变换
Math Transform Functions ACOS - Vector Trigonometric ACos 函数名:ACOS 名称:acos函数是反余弦函数,三角函数 real = ACOS( ...
- 快递API接口
快递100
- 通过html<map>标签给图片加链接
前面我们有谈到了通过图片定位给一张图片添加多个链接,现在用另外一种方法来实现,用html<map>标签给图片加链接 <img src="/images/hlj.jpg&qu ...
- ReactiveCocoa 初学者使用
skip 跳过几个信号,不接受 filter :过滤 ignore:忽略某一个值 take:从开始一共取N次的信号 ignoreValues 这个比较极端,忽略所有值,只关心Signal结束,也就是只 ...