动手动脑与作业

一、古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:请编写一个程序,使用上述算法加密或解密用户输入的英文字串。

1.设计思想

输入数据后,输入数字n,若n>5,则为加密过程,数据按ASCII码转化为int型,转化得来的数字加数字做为加密后的数据,再将这些数据转化为字符,这就是加密。若n<5,则为解密过程,数据按ASCII码转化为int型,转化得来的数字减数字做为解密后的数据,再将这些数据转化为字符,这就是解密。

2.程序流程图

3.源代码

//信1403-1班 张妞妞   加解密

import java.util.Scanner;

public class Jjiemi

{

public static void main(String[] args)

{

// TODO Auto-generated method stub

String input = null;

Scanner sc = new Scanner(System.in);

System.out.println("请输入数据:");

input = sc.next();

StringBuffer changed = new StringBuffer();

Scanner sc1=new Scanner(System.in);

System.out.println("请输入数字n:");

int a;

a=sc1.nextInt();      //输入数字n

if(a>5)

{

System.out.println("加密:");

for(int i = 0;i < input.length();i++)

{

char x = input.charAt(i);

if(input.charAt(i) >= ‘a‘ && input.charAt(i) <= ‘z‘)

{

x = (char) (‘a‘  + ‘z‘ - x);

changed.append(x);

}

else if(x >= ‘A‘ && x <= ‘Z‘)

{

x = (char) (‘A‘  + ‘Z‘ - x);

changed.append(x);

}

else

{

continue;

}

}

}

else

{

System.out.println("解密:");

for(int i = 0;i < input.length();i++)

{

char x = input.charAt(i);

if(input.charAt(i) >= ‘a‘ && input.charAt(i) <= ‘z‘)

{

x = (char) (‘z‘  + ‘a‘ - x);

changed.append(x);

}

else if(x >= ‘A‘ && x <= ‘Z‘)

{

x = (char) (‘Z‘  + ‘A‘ - x);

changed.append(x);

}

else

{

continue;

}

}

}

System.out.println(changed);

}

}

4.结果截图

二.动手动脑之String.equals()方法

String.equals() 方法比较字符串与指定的对象。其结果是true当且仅当参数不为null,并且是一个String对象,这个对象表示相同的字符序列 。

“==”是看两个对象是否是同一个对象,也就是两个对象引用是否指向同一个对象(Java分配的内存地址一样)当然如果用于int,long,double就不是看两个值是否相等了。

equals()是比较两个对象的内容是否相等,一般如果用户自己不定义针对自己的类的equals()方法,那么就会使用Object的活着你的类的父类的这个方法。如果你的类里没有对象引用的域,就不必要覆盖equals()(注意String域也是对象)String有自己的equals()方法。

三.整理String类的Length()、charAt()、getChars()、replace()、toUpperCase()、toLowerCase()、tirm()、toCharArray()使用说明

1. Length()可以求字符串长度(字符个数),比如str.Length();求出str长度。

2. charAt()获取指定位置的字符str.charAt(0);获取str的第0位的字符。

3. getChars()获取从指定位置起的子串复制到字符数组中,比如 s1.getChars(0,5,charArray,0);四个参数的含义:1.被拷贝字符在字串中的起始位置。2.被拷贝的最后一个字符在字串中的下标再加1。3.目标字符数组。4.拷贝的字符放在字符数组中的起始下标。

4. replace(),替换字符串,replace(oldstring,newstring);用新字符串代替旧字符串。

5. toUpperCase():将字符串转化为大写形式,比如str.toUpperCase();将str中所有小写转换成大写。

6. toLowerCase():将字符串转化为小写形式,比如str.toLowerCase();将str中所有大写转换成小写。

7. trim():去除前导空白和尾部空白,比如str=” abc ”,str.tirm();将str头尾的空格去掉。

8. toCharArray()将字符串对象转换为字符数组(需要一个新的char[]数组来保存),str.toCharArray();将str转换成char数组。

时间: 2024-12-28 00:01:33

动手动脑与作业的相关文章

动手动脑课堂作业7---------

动手动脑1 CatchWho.java运行结果: CatchWho2.java运行结果: EmbedeFinally.java运行结果: finally语句块一定会执行吗? SystemExitAndFinally.java运行结果: 只有与 finally 相对应的 try 语句块得到执行的情况下,finally 语句块才会执行.如果在try语句块之前返回(return)或者抛出异常,try对应的finally语句块就不会执行. 动手动脑2 如何跟踪异常的传播路径? 当程序中出现异常时,JVM

动手动脑java作业

1.程序截图 第一个false:判断s和t里的值,不同则输出false 第二个false:当且仅当这个类表示一个基本类型此方法返回true 第三个true:判断s和u里的值,相同则输出true 最后则是列出Size的所有值. 其中的问题: //s和t引用同一个对象?不是 //是原始数据类型吗?不是 2.计算机的原码.补码和反码: 1.原码:原码表示法是机器数的一种简单的表示法.其符号位用 0表示正号,用1表示负号,数值一般用二进制形式表示. 2.补码:机器数的补码可由原码得到.如果机器数是正数,

动手动脑+课后作业

一.编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数. 二.代码MethodOverLoad有什么特殊之处? 使用了同一种方法但是是不同类型. 这是"方法重载",构成重载的条件:1.方法名相同(square) 2.参数类型不同(int,double),参数个数不同或参数类型的顺序不同. 三. (1) (2) (3) (4) (5)

Java动手动脑课后作业1-求创建对象个数

截图 //通过静态字段和构造函数知道所创建对象个数 //刘启明,October 17,2015 package Demo; class ObjectNumbers{ static int number=0; public ObjectNumbers()  { System.out.println("已经创建了"+(++number)+"个对象!!"); } } public class Search { public static void main(String[

异常处理---动手动脑及课后作业

动手动脑1:请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识. 源码: import javax.swing.*; class AboutException { public static void main(String[] a) { int i=1, j=0, k; k=i/j; try { k = i/j; // Causes division-by-zero exception //throw new Exception

JAVA语法基础 动手动脑及课后作业

动手动脑1: 仔细阅读示例: EnumTest.java,运行它,分析运行结果? public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size.LARGE; //s和t引用同一个对象? System.out.println(s==t);  // //是原始数据类型吗? System.out.println(s.getClass().isPrimitive()); //

JAVA 数组作业——动手动脑以及课后实验性问题

JAVA课后作业——动手动脑 一:阅读并运行示例PassArray.java,观察并分析程序输出的结果,小结,然后与下页幻灯片所讲的内容进行对照. 1.源代码 // PassArray.java // Passing arrays and individual array elements to methods //引用传递和按值传递 public class PassArray { public static void main(String[] args) { int a[] = { 1,

第七讲 数组动手动脑和课后作业

[动手动脑1] 数据作为方法参数示例代码 int[] arr= new int[ 24 ]; -- modifyArray( arr ); 阅读并运行示例PassArray.java,观察并分析程序输出的结果,小结,然后与下页幻灯片所讲的内容进行对照. // PassArray.java // Passing arrays and individual array elements to methods public class PassArray { public static void ma

课后作业和动手动脑(字符串)

动手动脑1: (1)       在Java中,内容相同的字串常量(“Hello”)只保存一份以节约内存,所以s0,s1,s2实际上引用的是同一个对象. (2)       编译器在编译s2一句时,会去掉“+”号,直接把两个字串连接起来得一个字串(“Hello”).这种优化工作由Java编译器自动完成. (3)       当直接使用new关键字创建字符串对象时,虽然值一致(都是“Hello”),但仍然是两个独立的对象 动手动脑2: equals所在位置: 在Object类当中,而Object是