当前位置: 首页 > news >正文

04-String

课后作业1:字串加密

设计思想:根据题目的要求,我发现每个字母其实后移了三位,比如A对应D,因此,在程序中,可以把输入的字符串的每个字符后裔三位,这是加密的字符,解密的字符反一下就行。

程序流程图:

源代码:

import java.util.Scanner;

public class Password {
public void jiemi()

{
String input,output;
Scanner cin=new Scanner(System.in);
System.out.println("输入需要解密的字符串:");
input=cin.next();
for(int i=0;i<input.length();i++)
{
char a[]=new char[input.length()];
a[i]=input.charAt(i);
char b[]=new char[input.length()];
if(a[i]!='X'&&a[i]!='Y'&&a[i]!='Z')
b[i]=(char) (a[i]+3);
else
b[i]=(char) (a[i]-23);

System.out.print(b[i]);
}
}
public void jiami()
{
String input,output;
Scanner cin=new Scanner(System.in);
System.out.println("输入需要加密的字符串:");
input=cin.next();
for(int i=0;i<input.length();i++)
{
char a[]=new char[input.length()];
a[i]=input.charAt(i);
char b[]=new char[input.length()];
if(a[i]!='A'&&a[i]!='B'&&a[i]!='C')
b[i]=(char) (a[i]-3);
else
b[i]=(char) (a[i]+23);

System.out.print(b[i]);
}
}
public static void main(String[] args) {
// TODO 自动生成的方法存根

System.out.println("1.加密");
System.out.println("2.解密");
System.out.println("选择功能:");
int n;
Scanner cin=new Scanner(System.in);
n=cin.nextInt();
Password p=new Password();
switch(n)
{
case 1 : {p.jiami();break;}
case 2 : {p.jiemi();break;}
}


}

}

结果截图:

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;
    }

  

(1)String类中的equals首先比较地址,如果是同一个对象的引用,可知对象相等,返回true。

(2)若果不是同一个对象,equals方法挨个比较两个字符串对象内的字符,只有完全相等才返回true,否则返回false。

String类的Length():

public int length()//返回该字符串的长度

String str = new String("asdfzxc");
int strlength = str.length();//strlength = 7

charAt():
public char charAt(int index)//返回字符串中指定位置的字符;注意字符串中第一个字符索引是0,最后一个是length()-1。
1 String str = new String("asdfzxc");

2 char ch = str.charAt(4);//ch = z
getChars():

public void getChars(int start,int end,char c[],int offset)

        该方法的作用是将当前字符串从start到end-1位置上的字符复制到字符数组c中,并从c的offset处开始存放

replace():

public String replace(char oldChar, char newChar)//用字符newChar替换当前字符串中所有的oldChar字符,并返回一个新的字符串

toUpperCase():

public String toUpperCase()//返回将当前字符串中所有字符转换成大写后的新串

toLowerCase():

public String toLowerCase()//返回将当前字符串中所有字符转换成小写后的新串

trim():

tring trim()//截去字符串两端的空格,但对于中间的空格不处理。

1 String str = " a sd ";
2 String str1 = str.trim();
3 int a = str.length();//a = 6
4 int b = str1.length();//b = 4
toCharArray():
将字符串对象中的字符转换为一个字符数组
例如:

String myString="abcd";
char myChar[]=myString.toCharArray();
System.out.println("myChar[1]="+myChar[1]);
输出结果:

myChar[1]=b
 

转载于:https://www.cnblogs.com/andibier/p/7739653.html

相关文章:

  • 社工-入侵
  • Spring声明式事务管理之一:五大属性分析
  • 解决Activity启动黑屏及设置android:windowIsTranslucent不兼容activity切换动画问题
  • UWP Popup 弹出提示框
  • 利用Dawn工程化工具实践MobX数据流管理方案
  • crontab_定时执行任务(python)
  • 【commons-io】File对文件与目录的处理FileUtis,IOUtils,FilenameUtils工具的使用
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • vue2组件之间双向数据绑定问题
  • IO(字节流、字符流)
  • Linux环境安装docker
  • 康复者的福音来了,只要穿上这款机器人外骨骼便能自由转身
  • Linux系统的数据写入机制--延迟写入
  • 它改变了整个扫地机器人行业,如今被全面收购
  • Day16 Django
  • 2017年终总结、随想
  • Android Studio:GIT提交项目到远程仓库
  • android图片蒙层
  • Angularjs之国际化
  • AWS实战 - 利用IAM对S3做访问控制
  • egg(89)--egg之redis的发布和订阅
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • Java知识点总结(JavaIO-打印流)
  • learning koa2.x
  • OSS Web直传 (文件图片)
  • spring学习第二天
  • Unix命令
  • vue-loader 源码解析系列之 selector
  • Xmanager 远程桌面 CentOS 7
  • 动态规划入门(以爬楼梯为例)
  • 对象管理器(defineProperty)学习笔记
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 判断客户端类型,Android,iOS,PC
  • 使用docker-compose进行多节点部署
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 学习笔记TF060:图像语音结合,看图说话
  • 一天一个设计模式之JS实现——适配器模式
  • 找一份好的前端工作,起点很重要
  • 智能合约开发环境搭建及Hello World合约
  • #图像处理
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (Git) gitignore基础使用
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (十一)手动添加用户和文件的特殊权限
  • (一)RocketMQ初步认识
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转)visual stdio 书签功能介绍
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • (转)母版页和相对路径