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 编辑 ...
随机推荐
- mysql的介绍和安装
本节内容 1.数据库介绍 2.mysql管理 3.mysql数据类型 4.常用mysql命令 创建数据库 外键 增删改查表 5.事务 6.索引 1.数据库介绍 什么是数据库? 数据库(Database ...
- 在fedora 18中将普通用户设置为sudo权限
将一般的用户加入sudo组is not in the sudoers file. This incident will be reported 解决方法 在一般用户下执行sudo命令提示xxx is ...
- java基础---->多线程之Daemon(五)
在java线程中有两种线程,一种是用户线程,另一种是守护线程.守护线程是一种特殊的线程,当进程中不存在非守护线程了,则守护线程自动销毁.今天我们通过实例来学习一下java中关于守护线程的知识.我是个平 ...
- $.when()方法监控ajax请求获取到的数据与普通ajax请求回调获取到的数据的不同
1.$.when(ajax).done(function(data)}); 2.$.ajax().done(function(data){}); 1中的data被封装进一个对象[data, " ...
- IIS 无法访问.net的动态文件
编译器错误消息:CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319... 在“c:\windows\temp”这个文件夹添 ...
- 【BZOJ1045】[HAOI2008] 糖果传递 贪心
[BZOJ1045][HAOI2008] 糖果传递 Description 有n个小朋友坐成一圈,每人有ai个糖果.每人只能给左右两人传递糖果.每人每次传递一个糖果代价为1. Input 第一行一个正 ...
- AVG
AVG([ DISTINCT | ALL ] expr) [ OVER(analytic_clause) ] SELECT MANAGER_ID, LAST_NAME, ...
- Linux系统下 Supervisor 安装搭建
在 web 应用部署到线上后,需要保证应用一直处于运行状态,在遇到程序异常.报错等情况,导致 web 应用终止时,需要保证程序可以立刻重启,继续提供服务. 所以,就需要一个工具,时刻监控 web 应用 ...
- Java导出Excel表,POI 实现合并单元格以及列自适应宽度(转载)
POI是apache提供的一个读写Excel文档的开源组件,在操作excel时常要合并单元格,合并单元格的方法是: sheet.addMergedRegion(new CellRangeAddress ...
- could not execute menu item系统找不到指定的文件
Wamp3.0.6 64bit,系统任务栏图标,左键,Apache菜单,httpd.conf,报错“could not execute menu item.....系统找不到指定的文件” 根据网上的搜 ...