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

设计思想:先提示用户进行的操作是加密还是解密,用户输入一个字符串,加密时将前23个大小写字母+3,后3个-23强制转换成char类型。解密时将后23个大小写字母-3,前3个-23.用char()方法将改变的字符连接到结果上。

源代码://20153250 解密或加密字符串  陈欣容

package demo;

import java.util.Scanner;

public class JieMi {

public static void main(String args[])

{

Scanner s= new Scanner(System.in);//输入

System.out.print("请输入要执行操作(1.加密,2解密):");

int choose = s.nextInt();

String result="";

char temp;

if(choose==1)//加密

{

System.out.print("请输入字符串:");

String n=s.next();

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

{

if((n.charAt(i)>64&&n.charAt(i) < 88)||(n.charAt(i)>96&&n.charAt(i) < 120))

temp=(char)(n.charAt(i)+3);

else if((n.charAt(i)>87&&n.charAt(i)<91)||(n.charAt(i)>119&&n.charAt(i)<123))

temp=(char) (n.charAt(i)-23);

else

{

System.out.println("输入有误");

break;

}

result += temp;

}

System.out.println("加密后结果为:"+result);

}

else if(choose == 2)//解密

{

System.out.print("请输入字符串:");

String n=s.next();

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

{

if((n.charAt(i)>67&&n.charAt(i)<91)||(n.charAt(i)>99&&n.charAt(i)<123))

temp=(char)(n.charAt(i)-3);

else if((n.charAt(i)>64 &&n.charAt(i)<68)||(n.charAt(i)>96&&n.charAt(i) < 100))

temp=(char)(n.charAt(i)+23);

else

{

System.out.println("输入有误!");

break;

}

result += temp;

}

System.out.println("解密后结果为:" + result);

}

else

System.out.println("输入有误");

s.close();

}

}

截图:

二.String equals()使用方法

比较字符串内容是否相等

String s=”a”;

System.out.print(s.equals(“a”));     返回true

三.String Length()使用方法

作用:获取字串长度

String s=new String(“hello”);

System.out.print(s1.length());

四.String类型charAt()使用方法

作用:获取指定位置的字符

五.String类型getChars()使用方法

作用:获取从指定位置起的子串复制到字符数组中(有4个参数)

参数1:.被拷贝字符在字串中的起始位置

参数2:被拷贝的最后一个字符在字串中的下标再加1

参数3:目标字符数组

参数4:拷贝的字符放在字符数组中的起始下标

六.String类型replace()使用方法

作用:子串替换replace(‘a’,‘b’)b替换字符串中出现的所有a,

七.String类型toUpperCase()使用方法

作用:转化成大写

String str=”hello”;  str.toUpperCase();

八.String类型toLowerCase()使用方法

作用:转化成小写

九.String类型trim()使用方法

作用:去除头尾空格

十.String类型toCharArray()使用方法

作用:将字符串对象转换位字符数组

注意定义的字符串数组是char类型,char s[]

5.String的更多相关文章

  1. 透过WinDBG的视角看String

    摘要 : 最近在博客园里面看到有人在讨论 C# String的一些特性. 大部分情况下是从CODING的角度来讨论String. 本人觉得非常好奇, 在运行时态, String是如何与这些特性联系上的 ...

  2. JavaScript String对象

    本编主要介绍String 字符串对象. 目录 1. 介绍:阐述 String 对象的说明以及定义方式. 2. 实例属性:介绍 String 对象的实例属性: length. 3. 实例方法:介绍 St ...

  3. ElasticSearch 5学习(9)——映射和分析(string类型废弃)

    在ElasticSearch中,存入文档的内容类似于传统数据每个字段一样,都会有一个指定的属性,为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成字符串值,Elasticsearc ...

  4. [C#] string 与 String,大 S 与小 S 之间没有什么不可言说的秘密

    string 与 String,大 S 与小 S 之间没有什么不可言说的秘密 目录 小写 string 与大写 String 声明与初始化 string string 的不可变性 正则 string ...

  5. js报错: Uncaught RangeError: Invalid string length

    在ajax请求后得到的json数据,遍历的时候chrome控制台报这个错误:Uncaught RangeError: Invalid string length,在stackoverflow查找答案时 ...

  6. c# 字符串连接使用“+”和string.format格式化两种方式

    参考文章:http://www.liangshunet.com/ca/201303/218815742.htm 字符串之间的连接常用的两种是:“+”连接.string.format格式化连接.Stri ...

  7. 【手记】注意BinaryWriter写string的小坑——会在string前加上长度前缀length-prefixed

    之前以为BinaryWriter写string会严格按构造时指定的编码(不指定则是无BOM的UTF8)写入string的二进制,如下面的代码: //将字符串"a"写入流,再拿到流的 ...

  8. JavaScript中String对象的方法介绍

    1.字符方法 1.1 charAt() 方法,返回字符串中指定位置的字符. var question = "Do you like JavaScript?"; alert(ques ...

  9. 在多线程编程中lock(string){...}隐藏的机关

    常见误用场景:在订单支付环节中,为了防止用户不小心多次点击支付按钮而导致的订单重复支付问题,我们用 lock(订单号) 来保证对该订单的操作同时只允许一个线程执行. 这样的想法很好,至少比 lock( ...

  10. BCL中String.Join的实现

    在开发中,有时候会遇到需要把一个List对象中的某个字段用一个分隔符拼成一个字符串的情况.比如在SQL语句的in条件中,我们通常需要把List<int>这样的对象转换为“1,2,3”这样的 ...

随机推荐

  1. Spring和EJB3的技术对比

    随着EJB3规范以及支持EJB3的Java EE应用服务器的即将发布,全新Java EE体系架构的新战争将拉开帷幕,在过去3年中如火如荼的Spring占据了Java EE应用开发基础平台的大半江山,面 ...

  2. 用jQuery基于原生js封装的轮播

    我发现轮播在很多网站里面都用到过,一个绚丽的轮播可以为网页增色不少,最近闲来无事,也用原生js封装了一个轮播,可能不像网上的插件那么炫,但是也有用心去做.主要用了闭包的思想.需要传递的参数有:图片地址 ...

  3. TensorFlow支持windows了

    (留坑)找个时间测试一下. 终于来了,TensorFlow 新增官方 Windows 支持

  4. ASP.NET 状态服务 及 session丢失问题解决方案总结

    ASP.NET2.0系统时,在程序中做删除或创建文件操作时,出现session丢失问题.采用了如下方法:1.asp.net Session的实现:asp.net的Session是基于HttpModul ...

  5. linux中Makefile文件相关内容

    第一章.概述什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional(专业)的程序员,m ...

  6. 尝试用md编辑器写博客, 内容为 jupyter笔记

    Matplotlib tutorial http://www.labri.fr/perso/nrougier/teaching/matplotlib/#introduction %matplotlib ...

  7. 如何编写高质量的Javascript代码

    1.避免全局变量,因为全局变量容易发生名称上的冲突,可维护性不好. a,使用命名空间 b,使用闭包 c,在函数内部使用var声明 2.编写可维护的代码 a.可读性 b.连续性 c.预见性 d.看起来是 ...

  8. Exit code from container executor initialization is : 24 ExitCodeException exitCode=24: Configuration file ../etc/hadoop/container-executor.cfg not found.

    /etc/hadoop/conf的软链接(/etc/hdfs/conf)不正确,应该是/etc/yarn/conf

  9. HTML5部分新标签属性及DOM扩展元素

    HTML5定义了一系列新元素,如新语义标签.智能表单.多媒体标签等. 我们日常讨论的H5其实是一个泛称,它指的是由HTML5 + CSS3 + Javascript等技术组合而成的一个应用开发平台. ...

  10. DPDK编译步骤

    大页内存分配:  NUMA系统(现在的linux一般都是) echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048 ...