6-4 字符串加密(Java解法,两种网上的类型题)

简介: 6-4 字符串加密(Java解法,两种网上的类型题)



 

6-4字符串加密,第一种类型题:

       本题要求实现一个函数,能对一行字符串(字符串的长度<80)加密。 加密函数采用的加密算法:如果不是英文字母,就不加密,原样显示;否则就将字母加上一个偏移值5实现加密。

       注意大小写英文字母分别构成一个封闭环,如字符‘w’,加密后为字符‘b’。

Java题解1:

这个是第一个类型的,有一个测试样例

输入样例:

Hello World!

输出样例:

Mjqqt Btwqi!

编码过程

package com.item.action;
import java.util.Scanner;
public class Main1 {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String s = sc.nextLine();
    sc.close();
    char[] cs = cryptograp(s.toCharArray(), s.length());
    for (char c : cs) {
      System.out.print(c);
    }
  }
  private static char[] cryptograp(char[] ch, int n) {
    // TODO Auto-generated method stub
    for (int i = 0; i < n; i++)// u v w x y z;
    {
      if (ch[i] >= 'a' && ch[i] <= 'u')
        ch[i] = (char) (ch[i] + 5);
      else if (ch[i] >= 'v' && ch[i] <= 'z')
        ch[i] = (char) ('a' + ch[i] - 'v');
      if (ch[i] >= 'A' && ch[i] <= 'U')
        ch[i] = (char) (ch[i] + 5);
      else if (ch[i] >= 'V' && ch[i] <= 'Z')
        ch[i] = (char) ('A' + ch[i] - 'V');
    }
    return ch;
  }
}

 

字符串加密,第二种类型题:

       输入一个原始字符串(长度小于80)(在这里看和第一个题类似),然后输入一个5位的数字字符串作为加密密钥,对原始字符串中的每个字符根据其位置(对5取模)变换为加上数字字符串中的数字的字符。如输入原始字符串student,然后输入5位的加密数字12345,因此:

原始字符 加密数字 变换后的字符

s 1 t

t 2 v

u 3 x

d 4 h

e 5 j

n 1 o

t 2 v

加密后的字符串位:tvxhjov

输入格式: 第一个输入一个原始字符串 第二行输入一个5位用来加密的数字字符串

输出格式: 加密后的字符串

输入样例1:

在这里给出一组输入。例如:

student
12345

结尾无空行

输出样例1:

在这里给出相应的输出。例如:

tvxhjov

结尾无空行

输入样例2:

在这里给出一组输入。例如:

Welcome to Java!
10932

结尾无空行

输出样例2:

在这里给出相应的输出。例如:

Xeufqne)wq!Jjyc"

Java题解2:

package com.item.action;
import java.util.*;
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s=sc.nextLine();
        int k=sc.nextInt();
        sc.close();
        cryptograp(s.toCharArray(), k);
    }
    private static void cryptograp(char ch[],int n) {
      int a[]=new int[5];
        for(int i=a.length-1;i>=0;i--) {
            a[i]=n%10;
            n=n/10;
        }
        for(int i=0;i<ch.length;i++) {
            System.out.print((char)(ch[i]+a[i%5]));
        }
    }
}

 

相关文章
|
6月前
|
SQL JSON Java
告别字符串拼接:用Java文本块优雅处理多行字符串
告别字符串拼接:用Java文本块优雅处理多行字符串
510 108
|
7月前
|
安全 Java 编译器
Java类型提升与类型转换详解
本文详解Java中的类型提升与类型转换机制,涵盖类型提升规则、自动类型转换(隐式转换)和强制类型转换(显式转换)的使用场景与注意事项。内容包括类型提升在表达式运算中的作用、自动转换的类型兼容性规则,以及强制转换可能引发的数据丢失和运行时错误。同时提供多个代码示例,帮助理解byte、short、char等类型在运算时的自动提升行为,以及浮点数和整型之间的转换技巧。最后总结了类型转换的最佳实践,如避免不必要的转换、使用显式转换提高可读性、金融计算中使用BigDecimal等,帮助开发者写出更安全、高效的Java代码。
406 0
|
7月前
|
安全 IDE Java
Java记录类型(Record):简化数据载体类
Java记录类型(Record):简化数据载体类
570 143
|
7月前
|
Java 测试技术
Java浮点类型详解:使用与区别
Java中的浮点类型主要包括float和double,它们在内存占用、精度范围和使用场景上有显著差异。float占用4字节,提供约6-7位有效数字;double占用8字节,提供约15-16位有效数字。float适合内存敏感或精度要求不高的场景,而double精度更高,是Java默认的浮点类型,推荐在大多数情况下使用。两者都存在精度限制,不能用于需要精确计算的金融领域。比较浮点数时应使用误差范围或BigDecimal类。科学计算和工程计算通常使用double,而金融计算应使用BigDecimal。
2901 102
|
5月前
|
存储 算法 安全
Java集合框架:理解类型多样性与限制
总之,在 Java 题材中正确地应对多样化与约束条件要求开发人员深入理解面向对象原则、范式编程思想以及JVM工作机理等核心知识点。通过精心设计与周密规划能够有效地利用 Java 高级特征打造出既健壮又灵活易维护系统软件产品。
162 7
|
8月前
|
SQL JSON Java
告别拼接噩梦:Java文本块让多行字符串更优雅
告别拼接噩梦:Java文本块让多行字符串更优雅
731 82
|
6月前
|
Java 开发者
Java 函数式编程全解析:静态方法引用、实例方法引用、特定类型方法引用与构造器引用实战教程
本文介绍Java 8函数式编程中的四种方法引用:静态、实例、特定类型及构造器引用,通过简洁示例演示其用法,帮助开发者提升代码可读性与简洁性。
|
7月前
|
安全 算法 Java
Java泛型编程:类型安全与擦除机制
Java泛型详解:从基础语法到类型擦除机制,深入解析通配符与PECS原则,探讨运行时类型获取技巧及最佳实践,助你掌握泛型精髓,写出更安全、灵活的代码。
|
8月前
|
自然语言处理 Java Apache
在Java中将String字符串转换为算术表达式并计算
具体的实现逻辑需要填写在 `Tokenizer`和 `ExpressionParser`类中,这里只提供了大概的框架。在实际实现时 `Tokenizer`应该提供分词逻辑,把输入的字符串转换成Token序列。而 `ExpressionParser`应当通过递归下降的方式依次解析
444 14