20165218 实验一 Java开发环境的熟悉

实验一 Java开发环境的熟悉

课程:java程序设计

姓名:赵冰雨

学号:20165218

指导教师:娄嘉鹏

实验日期:2018.4.2

实验密级:Java开发环境的熟悉

实验内容、步骤与体会:

(一)Linux命令行下Java程序开发

  1. 打开虚拟机,Ctrl+Alt+T打开终端(也可以在需要打开终端的文件夹下直接右键打开终端)
  2. cd 20165218,mkdir exp1,cd exp1,建立并进入实验一的文件夹
  3. mkdir bin,mkdir src
  4. touch src/Hello.java并在IDEA内编辑保存好
  5. javac -d bin src/Hello.java编译到bin内
  6. java -cp bin Hello 运行


(二)IDEA下Java程序开发、调试

  1. 创建项目,新建HelloJDB类,输入代码,Shift+Alt+F10运行

  1. 在行前左击,设置断点Shift+Alt+F9程序运行到断点处

  2. 单步执行

  1. 条件断点:在断点处输入条件,Shift+Alt+F9进行Debug


(三)练习(通过命令行和IDEA两种方式实现,自己的学号后两位与题目总数取余的结果再加上1就是自己要完成的题号,在IDEA下练习调试程序)

  1. 实现凯撒密码并进行安全加固,并进行测试(正常情况,异常情况,边界情况)。

代码实现:

凯撒密码主类

 /**
 * Created by zby on 2018/4/2.
 */

import java.util.*;
import java.lang.*;

public class CaeserCipher {//凯撒密码
    public static void main(String[] args) {
        System.out.println("输入一串字符串作为明文(回车结束):");
        Scanner input = new Scanner(System.in);
        String m = input.next();//读入一行字符串,以回车为标志
        Arithmetic output = new Arithmetic();
        String c = output.encrpty(m);
        System.out.println("加密后的密文为:" + c);
        System.out.println("解密后的明文为:" + output.decrypt(c));
    }
}

算法方法所在类

/**
 * Created by zby on 2018/4/2.
 */

import java.lang.*;

public class Arithmetic {//加密和解密算法
    public String encrpty(String m) {
        StringBuilder result = new StringBuilder();
        char[] mi = m.toCharArray();
        int n = mi.length;
        for (int c : mi) {
            if (c >= 'a' && c <= 'z') {
                c += 3; // 移动key%26位
                if (c < 'a')
                    c += 26; // 向左超界
                if (c > 'z')
                    c -= 26; // 向右超界
            }
            // 如果字符串中的某个字符是大写字母
            else if (c >= 'A' && c <= 'Z') {
                c += 3; // 移动key%26位
                if (c < 'A')
                    c += 26;// 同上
                if (c > 'Z')
                    c -= 26;// 同上
            }
            result.append((char) c);
        }
        return result.toString();
    }

    public String decrypt(String m) {
        StringBuilder result = new StringBuilder();
        char[] mi = m.toCharArray();
        int n = mi.length;
        for (int c : mi) {
            if (c >= 'a' && c <= 'z') {
                c -= 3; // 向前移动3位
                if (c < 'a')
                    c += 26; // 向左超界
                if (c > 'z')
                    c -= 26; // 向右超界
            }
            // 如果字符串中的某个字符是大写字母
            else if (c >= 'A' && c <= 'Z') {
                c -= 3; // 向前移动3位
                if (c < 'A')
                    c += 26;// 同上
                if (c > 'Z')
                    c -= 26;// 同上
            }
            result.append((char) c);
        }
        return result.toString();
    }

}

实现:


参考资料

  1. java中如何输入char类型 - CSDN博客
  2. string的append函数用法 - CSDN博客
  3. 大神们啊。。。。请问java怎么输入String型数据。。。。。? - 百度知道
posted @ 2018-04-02 15:25  zicerain  阅读(243)  评论(1编辑  收藏  举报