JAVA字符串05之课程问题解决

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

1.设计思想:首先选择是加密字符串还是解密字符串,两种算法相似。如果要加密字符串,则需要考虑特殊字符,就是XYZ这三个字符;相应的解密字符串类似,也需要考虑ABC这三个字符。

2.程序流程图

3.源代码

import java.util.Scanner;

public class work1 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
    Scanner scanner=new Scanner(System.in);
    int num=0;
    System.out.println("(1加密字符串,2解密字符串)");
    System.out.print("请选择:");
    num=scanner.nextInt();

  if(num==1)
  {
      System.out.print("请输入需要加密的字符串:");
       String str=scanner.next();
    scanner.close();//这是啥意思? System.out.print("加密后:");
    char a=‘a‘;
   for(int i=0;i<str.length();i++)
   {
       char a2=str.charAt(i);
   if(a2>=‘A‘&&a2<=‘Z‘)
   {
       if(a2>=‘X‘&&a2<=‘Z‘)
       {
         if(a2==‘X‘) a=‘A‘;
         if(a2==‘Y‘) a=‘B‘;
         if(a2==‘Z‘) a=‘C‘;
       }
       else
       { a=(char)(a2+3);}
    }
    System.out.print(a);}
   }
  if(num==2)
  {
      System.out.print("请输入需要解密的字符串:");
      String str=scanner.next();
      char b=‘b‘;  System.out.print("解密后:");
      for(int j=0;j<str.length();j++)
      {char b2=str.charAt(j);
      if(b2>=‘A‘&&b2<‘Z‘)
       {
           if(b2>=‘A‘&&b2<‘D‘)
           {
            if(b2==‘A‘)b=‘X‘;
            if(b2==‘B‘)b=‘Y‘;
            if(b2==‘C‘)b=‘Z‘;
           }
           else
           { b=(char)(b2-3);}
        }
        System.out.print(b);}
       }
    }
}

4.结果截图

(二)动手动脑

1.String.equals()方法:比较的是两个字符串的内容。

2.Length():获取字符串的长度。

3.charAt():获取指定位置的字符。

4. getChars():获取从指定位置起的子串复制到字符数组中。

5.replace():子串替换。

6.toUpperCase():全部字符变为大写,返回新字符串。

7. toLowerCase():全部字符变为小写,返回新字符串。

8.trim():去除头尾空格。

9.toCharArray():将字符串对象转换为字符数组。

时间: 2024-10-10 07:12:51

JAVA字符串05之课程问题解决的相关文章

JAVA语法02之课程问题解决

(一)示例程序+运行结果: ①EnumTest.java 1 public class EnumTest { 2 3 public static void main(String[] args) { 4 Size s=Size.SMALL; 5 Size t=Size.LARGE; 6 //s和t引用同一个对象? 7 System.out.println(s==t); // 8 //是原始数据类型吗? 9 System.out.println(s.getClass().isPrimitive()

字符串-05. 字符串循环左移(20)

输入一个字符串和一个非负整数N,要求将字符串循环左移N次. 输入格式: 输入在第1行中给出一个不超过100个字符长度的.以回车结束的非空字符串:第2行给出非负整数N. 输出格式: 在一行中输出循环左移N次后的字符串. 输入样例: Hello World! 2 输出样例: llo World!He import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(St

Java架构师VIP课程一期共89G视频教程 luban it教程

集数合计:14讲Java视频教程详情描述: A0505<Java架构师VIP课程一期共89G视频教程>Java架构师VIP课程一期共89G视频教程 鲁班学院 课件资料全Java视频教程目录: 百度网盘下载点击 ├─撸搬架构├─01.并发专题(一)│      2018-09-11(1)-Java内存模型│      2018-09-13(2)-synchronized原理│      2018-09-16(3)-volatile实现机制│      2018-09-18(4)-DCL-单例模式

鲁班 Java架构师VIP课程一期共89G视频教程 luban it教程

Java视频教程详情描述: A0505<Java架构师VIP课程一期共89G视频教程>Java架构师VIP课程一期共89G视频教程 鲁班学院 课件资料全Java视频教程目录 ├─撸搬架构├─01.并发专题(一)│      2018-09-11(1)-Java内存模型│      2018-09-13(2)-synchronized原理│      2018-09-16(3)-volatile实现机制│      2018-09-18(4)-DCL-单例模式│      2018-09-21(

Java字符串的10大热点问题汇总

下面我为大家总结了10条Java开发者经常会提的关于Java字符串的问题,如果你也是Java初学者,仔细看看吧: 1.如何比较字符串,应该用”==”还是equals()? 总的来说,”==”是用来比较字符串的引用地址,而equals()才是比较字符串的值.两个值相同的字符串用”==”比较结果有可能是false,而用equals()则一定为true.除非两个字符串是同一个new出来的对象,不然比较字符串值是否相同应该要用equals(). 2.对那些安全敏感的信息,为什么用char[]存储要优于S

鲁班学院最新架构师资料《Java架构师VIP课程》

鲁班学院最新架构师资料<Java架构师VIP2019课程一期> 课程目录: ├─01.并发专题(一) │ 2018-09-11(1)-Java内存模型 │ 2018-09-13(2)-synchronized原理 │ 2018-09-16(3)-volatile实现机制 │ 2018-09-18(4)-DCL-单例模式 │ 2018-09-21(5)-并发基础-AQS.CAS2 │ 2018-09-25(6)-并发集合 │ 2018-09-27(7)-原子操作-基本类型 │ 2018-09-3

There is insufficient memory for the Java Runtime Environment to continue问题解决

在linux系统下长时间进行性能测试,连续几次发生服务器假死无法连接上的情况,无奈只能重启服务器.在测试路径下发现hs_err_pid17285.log文件,打开文件查看其主要内容如下: # There is insufficient memory for the Java Runtime Environment to continue.# Cannot create GC thread. Out of system resources.# Possible reasons:#   The sy

Java字符串学习笔记

通过看jdk源码发现Java字符串中有如下关系: 接口中的方法默认都是抽象的可以写也可以不写. public interface CharSequence { int length(); char charAt(int index); CharSequence subSequence(int start, int end); public String toString(); } 其他的都是该接口的实现类且是最终类,不能被继承. public final class String impleme

Java字符串

Java字符串 String对象是不可变的.String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的对象,以包含修改后的字符串.而最初的String对象则丝毫未动. import java.util.*; public class Immutable{ public static String upcase(String s){ return s.toUpperCase(); } public static void main(String[] args){ Strin