实验一 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 运行

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

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

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


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

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

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

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

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

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

  2. 单步执行

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

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

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

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

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


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

代码实现:

凯撒密码主类

 /**
* 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();
} }

实现:

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


参考资料

  1. java中如何输入char类型 - CSDN博客
  2. string的append函数用法 - CSDN博客
  3. 大神们啊。。。。请问java怎么输入String型数据。。。。。? - 百度知道
05-28 21:20