字串加密:

请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想、程序流程图、源代码、结果截图。

设计思想:先输入一个字符串,调用toCharArray()函数将它转化为字符数组,在利用while循环将每个字符对应的ASSCII码加3,最后再将字符数组转化为字符串输出。

程序流程图:

源代码

import java.util.Scanner;

public class mima

{

public static void main(String[] args)

{

System.out.print("请输入要加密的字符串:");

Scanner scanner=new Scanner(System.in);

String s=scanner.nextLine();

char[] l=s.toCharArray();

System.out.print("加密后的字符串为:");

for(int i=0;i

{

int temp=l[i];

temp=temp+3;

l[i]=(char)temp;

System.out.print(l[i]);}

}

}

结果截图:

动手动脑:

1.请运行以下示例代码StringPool.java,查看其输出结果。如何解释这样的输出结果?从中你能总结出什么?

输出结果:

结论:s0,s1,s2都存储字符串Hello,存储地址相同,所以输出的前两个结果为true,而用new是创建了一个新的对象,即使存储的字符串相同,对象的地址不相同,用“==”比较时比较的是地址,所以输出为false。

2.为什么会有这样的输出结果,从中你又能总结什么?

结论:“==”判断两个对象的地址是否相同,s1与s2是两个不同的对象,所以第一个输出false。String对象的内容是只读的,使用“+”修改s1的值,是得到了一个信的字符串对象,变成“ab”,但它与原来s1所引用的对象a无关,所以s1==ab为false,equals函数是比较内容是否相同,s1的值为ab,所以最后输出为true。

3.请查看String.equals()方法的实现代码,注意学习其实现方法。

public boolean equals(Object anObject){

if(this==anObject){

return true;

}

if(anObject instanceof String){

String anotherString =(String)anObject;

int n=value.length;

if(n==anotherString.value.length){

char v1[]=value;

char v2[]=anotherString .value;

int i=0;

while(n-- !=0){

if(v1[i] !=v2[i])

return false;

i++

}

return true;

}

}

return false;

}

结论:首先判断是否为同一对象,再判断是否都为字符串,再判断字符串的长度是否相等,最后通过循环判断每个对应的字符是否相等,都符合即为相等。

4.String类的方法可以连续调用:

String str="abc"; String result=str.trim().toUpperCase().concat("defg");

请阅读JDK中String类上述方法的源码,模仿其编程方式,编写一个MyCounter类,它的方法也支持上述的“级联”调用特性,其调用示例为:MyCounter counter1=new MyCounter(1); MyCounter counter2=counter1.increase(100).decrease(2).increase(3);

public class MyCounter {

int i;

MyCounter(int n){

i=n;

}

public MyCounter increase(int n)

{

this.i=this.i+n;

return this;

}

public MyCounter decrease(int n)

{

this.i=this.i-n;

return this;

}

public static void main(String[] args)

{

MyCounter counter1=new MyCounter(1);

MyCounter counter2=counter1.increase(100).decrease(2).increase(3);

System.out.println("counter2.i="+counter2.i);

}

}

5.整理String类的Length()、charAt()、getChars()、replace()、toLowerCase()、toCharArray()

Length():获取字符串长度,是针对数组说的。String a=”macaoyuan”; System.out.println(a.length());输出结果为9.

charAt():取字符串中指定位置的字符。String str=”abcdefg”; System.out.println(str.CharAt(3));输出结果为c。

getChars(int sourceStart,int sourceEnd,char target[],int targetStart): 将当前字符串从sourceStart到sourceEnd-1位置上的字符复制到字符数组target中,target的下标由targeStart指定。

class GetcharDemo{

public static void main(String args[]){

String s=’This is a demo of getChar’;

int start=10;

int end=14;

char buf[]=new char[4];

s.getChars(start,end,buf,0);

System.out.println(buf);

}

}

输出demo.

replace(char oldChar,char newChar):替换后生成的新字符串。Admin=Trim(Replace(Request.Form(“admin”),””,””));即是将admin中的单引号替换为空,消除单引号。

toLowerCase():大写的换小写,小写的换大写。var str="Hello World!"

document.write(str.toLowerCase()) “Hello World!”将用小写字母来输出。

toCharArray():字符串转换为字符数组。String s = "AaBbCcDd"; var chars = s.ToCharArray();

字符串的每个字符将被提取到数组中,将在字符数组中显示原始字符串和元素。

java part.inlimen_java字符串加密及动手动脑相关推荐

  1. Java代码:字符串加密与解密

    Java代码:字符串加密与解密 获取字符串的长度length() 把字符串转为字节数组getBytes() 字节数组转换为字符串String(b) /* *java代码:字符串加密与解密 **/ pa ...

  2. Java对字母移动三位加密_4动手动脑,总结及凯撒加密

    一.StringEquals.java 1.源代码 public classStringEquals {/***@paramargs the command line arguments*/ publ ...

  3. java课程课后作业04之动手动脑

    1.继承条件下的构造方法调用 先贴出实验需要的代码: 1 package TestJava; 2 3 class Grandparent 4 { 5 public Grandparent() 6 { ...

  4. 华为OD机试题,用 Java 解【字符串加密】问题

    华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南) 华为od机试,独家整理 已参加机试人员的实战技巧 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单 ...

  5. JAVA课上动手动脑问题以及课后测试1,2总结

    课堂测试1      像二柱子那样,花二十分钟写一个能自动生成30道小学四则运算题目的 "软件" 2    (1)题目避免重复 (2)可定制(数量/打印方式) 设计思路 1)产生两 ...

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

    动手动脑1: 仔细阅读示例: EnumTest.java,运行它,分析运行结果? public class EnumTest { public static void main(String[] ar ...

  7. JAVA语法基础作业——动手动脑以及课后实验性问题(一)

    一.枚举类型 public class EnumTest {  public static void main(String[] args) {    Size s=Size.SMALL;    Si ...

  8. java窗口弹出的位置_java的窗口弹出和动手动脑

    窗口弹出 //两数相加窗口弹出 张雪晴 2015/10/3 import javax.swing.JOptionPane; public class Addition { public static ...

  9. java用对话框输出计算结果_动手动脑及java程序之用消息框进行数的运算

    动手动脑自信成就人生 动手动脑1 ✿仔细阅读示例: EnumTest.java,运行它,分析运行结果? package demo; public class Test { public static ...

最新文章

  1. ASP.Net中的TreeView控件中对节点的上移和下移操作
  2. 阿里同款目标管理和绩效管理系统,让每个岗位都为业务赋能
  3. libevent中事件的添加与删除
  4. SQL Server 2014安装教程
  5. 游戏物体的力与运动:用unity实现磁体相互吸引和排斥的效果
  6. ServletFileUpload API详解
  7. SAP UI5对mobile touch事件的支持
  8. 关于第三周——回顾与修正
  9. ArrayList理解(1)初始化
  10. 网易丁磊:创造中国特色文化精品,助力实现中国文化大时代
  11. Unix的***追踪
  12. [jQuery]使用jQuery.Validate进行客户端验证——不使用微软验证控件的理由-目录及简介...
  13. php 解析p2p节目源,P2P加速解析与伪一次解析源码教程
  14. ubuntu 下文件/文件夹 比较工具 DiffMerge
  15. 做自己最好的生活大师
  16. 线性回归、岭回归、LASSO和Logistic模型
  17. 大牛程序员带你走进互联网:资历深不是优势,资源才是难得的宝藏!
  18. 安装RabbitMQ时出现Plugin configuration unchanged,RabbitMQ服务启动几秒后自动关闭, http://127.0.0.1:15672/页面无法访问一并解答
  19. Unirech腾讯云国际站代充-云服务器系统盘使用问题
  20. Luogu P1144 最短路计数

热门文章

  1. 山东省高等学校2018年计算机教学研究年会通知
  2. Python通过WMI读取主板BIOS信息
  3. Python使用超高效算法查找所有类似123-45-67+89=100的组合
  4. Pandas创建DataFrame对象的几种常用方法
  5. 系统镜像服务器,服务器系统镜像
  6. 2. SpringBoot +Mybaits
  7. 爬虫推特数据分析的外文文献_高效阅读英文文献你必须知道的技巧
  8. 力扣199. 二叉树的右视图(JavaScript)
  9. 计算机专业大学排名_最新!2020美国九大热门专业最具薪资潜力大学排名来了!...
  10. 矩阵平均路径长度_Android自定义View-路径动画