博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20145325张梓靖 实验一 "Java开发环境的熟悉"
阅读量:5128 次
发布时间:2019-06-13

本文共 2723 字,大约阅读时间需要 9 分钟。

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
  • 可通过直接空格的输入,不用每次输出一句话再输入字符。例,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
  • 将多余补充的输出删去
  • 代码最终版:
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
  • 代码终极版:
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

调试代码

  • 使用 debug ,在循环处设置条件为 i==5 的断点

885266-20160410114304781-1258194775.png

  • 调试程序,输入 hallojava ,点击 Resume,快速执行到断点所在处

885266-20160410114349328-1779031049.png

  • 此时结果显示为

885266-20160410114415922-333298811.png

  • 点击 Step Over,单步执行

885266-20160410114432968-818403479.png

  • 最终结果为

885266-20160410114554734-609422153.png

  • 直接用 run显示结果

885266-20160410114616625-2289477.png

  • 使用命令行进行编译与执行

885266-20160410114639593-37491865.png

转载于:https://www.cnblogs.com/zzjzzjzzj/p/5373707.html

你可能感兴趣的文章
JUnit中的设计模式:组合模式 Composite
查看>>
Android Fragment使用(二) 嵌套Fragments (Nested Fragments) 的使用及常见错误
查看>>
MySql unique的实现原理简析
查看>>
Oracle get column/comment definitions for a table
查看>>
python目录和文件的列表清单
查看>>
输出表格
查看>>
CSS(一)
查看>>
[Z] 从Uncaught SyntaxError: Unexpected token ")" 问题看javascript:void的作用
查看>>
线程和进程
查看>>
全国各个省市数据库
查看>>
如何理解栈(栈的实现方式)
查看>>
python实例 函数
查看>>
Halt- Linux必学的60个命令
查看>>
VxWorks USB资料
查看>>
最精简的代理设计模式demo - 保姆看孩子
查看>>
linux shell 之if-------用if做判断
查看>>
Servlet生命周期和工作原理
查看>>
济南的油旋及其他
查看>>
原型模式(Prototype)
查看>>
学习新技术的10个建议(转)
查看>>