gpt4 book ai didi

用于加密给定字符串的 Java 代码

转载 作者:行者123 更新时间:2023-12-02 04:07:47 25 4
gpt4 key购买 nike

我想要一个java代码使用如下所示的2个主要字符串来加密给定的字符串

s1 = "qwertyuiopasdfghjklzxcvbnm";
s2 = "mnbvcxzasdfghjklpoiuytrewq";

如果我们的输入字符串是"mnb",则将其与s2进行比较,并将s1中的相同索引添加3,然后输出将是 "rty" 但我没有得到正确的输出。

谁能帮我解决这个问题吗?

public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String s1 = "qwertyuiopasdfghjklzxcvbnm";
String s2 = "mnbvcxzasdfghjklpoiuytrewq";
String input,out = "";
System.out.println("enter input string");
input = sc.nextLine();
for(int i=0;i<s2.length();i++){
if(input.charAt(i)==s2.charAt(i)){
out+=s1.charAt(i+3);
}
System.out.println(out);
}
sc.close();
}

最佳答案

你几乎已经找到了解决方案!问题是,当您输入 s2 的最后 3 个字符之一时,您必须使用模运算符(当位置大于 25 时,您将到达字符串的末尾,并且必须从头开始搜索!)

public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
String s1 = "qwertyuiopasdfghjklzxcvbnm";
String s2 = "mnbvcxzasdfghjklpoiuytrewq";
String input,out = "";
System.out.println("enter input string");
input = sc.nextLine();
for (int i = 0; i < input.length(); i++) {
int position = s2.indexOf(input.charAt(i));
position = (position + 3) % 26;
out = out + s1.charAt(position);
}
sc.close();
}

为了避免错误的用户输入,您应该检查位置是否为-1(如果在s2中找不到该字符)并正确处理这种情况(异常/输出+循环中的中断)

关于用于加密给定字符串的 Java 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34089088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com