TheSixthWeekJavaText
加密文档
实验要求编写一个算法加密一串英文字串。
设计思想:对于一个字符串,我们可以用String.charAt()方法依次取出其中的字符元素,组成一个字符数组。由于字符可以转化为short类型变量进行计算,所有将从字符串中取出的字符经过一个特定的运算后在转化为char类型,然后覆盖原来的字符变量。将字符数组中的每一个字符都经过相同的转化方式,然后用这个字符数组初始化一个字符串,输出这个字符串,便是加密后的字符串。当需要解密的时候,只需要取出去每个字符进行相反的运算就行了。
程序流程图:

程序源代码:
import javax.swing.JOptionPane;
public class A_classTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = JOptionPane.showInputDialog(null);
char arry[] = new char[str.length()];
arry = str.toCharArray();
for(int i = 0; i < str.length(); i++){
short x = (short)arry[i];
x += 20;
if(x > 'z')
x -= 26;
arry[i] = (char)x;
}
String str1 = new String(arry);
JOptionPane.showMessageDialog(null, str1,"加密后为",JOptionPane.INFORMATION_MESSAGE);
}
}
实验结果截图:


String.equals()方法的源代码:
|
public boolean equals(Object anObject) { //判断是否是和自己比较 if (this == anObject) return true; } //判断传过来的anObject是否是String类型的实例 if (anObject String int n = if (n == char v1[] = char v2[] = int i = 0; //逐个字符进行比较 while (n-- != 0) if (v1[i] != return false; i++; } return true; } } return false; } |
在判断两个字符串是否相等的时候,首先判断这两个字符创是否符合“==”的条件。然后判断两个字符串长度是否相等,长度不相等的字符串当然不会相等。然后逐个字符逐个字符比较两个字符串中是否有不相同的字符,只要有一个不相等的字符出现,结束比较,放回false。
String类中的一些方法的使用方法:
length():返回字符串的长度。调用时必须以String类的实例对象调用,例如str.length()。
charAt():去字符串中指定位置上的字符,括号中的参数范围是0到字符串长度减一。
getChars():将字符串中的部分字符存到一个字符数组中。该方法有4个参数,参数列表为int srcBegin,int srcEnd,char[] dst, int dstBegin, 参数列表表示取本字符串中位置下标为srcBegin开始到位置下标为srcEnd-1结束的所有字符,字符放在字符数组dst中位置下标为dstBegin开始的后续位置。
replace():字串替换,参数列表:charsequence target,charsequence replacement;
target表示本子符串中需要特换的子字符串,replacement表示代替的字符串。替换过程从本字符串的开始到末尾中所有符和条件的子字符串。
toUpperCase():将本字符串中的所有字符都转化为大写字符。
toLowerCase():将本字符串中的所有字符都转化为小写字符。
trim():
去除本字符串头尾的空字符。
toCharArray():将本字符串转化为一个字符数组。
TheSixthWeekJavaText的更多相关文章
随机推荐
- python实现基于CGI的Web应用
python实现基于CGI的Web应用 本文用一个“网上书店”的web应用示例,简要介绍如何用Python实现基于CGI标准的Web应用,介绍python的cgi模块.cigtb模块对编写CGI脚本提 ...
- network重启失败原因
/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE='eth0' eth0后面千万不能加空格之类的
- [每日一题] OCP1z0-047 :2013-07-16 主键与唯一索引
主键包括非空和唯一约束,它会自动创建唯一索引(注:唯一约束也会自动创建唯一索引),测试如下: 1. 创建一个表products gyj@OCM> Create table products( 2 ...
- DEV gridcontrol 设置行数据超宽换行
第一 在main > columns 的 某个gridcolumn下的 columnEdit为新建为 repositoryitemmemoedit 第二 repositor下的optionvie ...
- Android数据存储汇总
1.sharedpreference,存储简单的信息,比如用户名,密码 package com.google.datastore.sharep; import android.app.Activity ...
- 关于angularjs的$state.go()与ui-sref传参问题
上次转发过关于angularjs回退的文章,回退用到的还是js的回退功能,直接用history.back();实现功能,当时顺便提了下$state.go()有关路由跳转. 那这回就全面解析下$stat ...
- 软件各种版本的含义!例如RC,M,GA等等
RC版本 RC:(Release Candidate) Candidate是候选人的意思,用在软件上就是候选版本.Release是发行.发布的意思.Release.Candidate.就是发行 ...
- 六、spark常见问题总结(转载)
问题导读 1.当前集群的可用资源不能满足应用程序的需求,怎么解决? 2.内存里堆的东西太多了,有什么好办法吗? 1.WARN TaskSchedulerImpl: Initial jo ...
- Python学习--09 模块
模块让我们能够有逻辑地组织Python代码段.把相关的代码分配到一个 模块里能让我们的代码更好用,更易懂. 导入模块 Python使用import语句导入模块.语法: # 形式一:导入模块 impor ...
- js中setTimeout()的使用
setTimeout()在js类中的使用方法 setTimeout (表达式,延时时间)setTimeout(表达式,交互时间)延时时间/交互时间是以豪秒为单位的(1000ms=1s) setTi ...