如何逐个替换数组列表的值并使用for循环存储另一个数组的值?
由于我希望用户写任何一行,然后我希望代码消除用户输入中的所有数字和符号,并将剩余的用户输入转换为大写,然后如果我从程序中得到BDJH的话希望程序将字母表的值换一,因此答案应该是或者输出应该是CEKI(之前是BDJH按字母顺序移动了一个)。
但我的程序没有运行,我不知道错误。
import java.util.ArrayList;
import java.util.Scanner;
public class nanana {
public static void main(String[] args){
System.out.println("ENTER THE NUMBER YOU WANT ENCRYPTED");
Scanner input1=new Scanner(System.in);
String name =input1.nextLine();
encryption(name);
name=name.toUpperCase();
ArrayList<Character> nilkil =new ArrayList<Character>();
for(int i=0;i<=name.length()-1;i++){
nilkil.add(name.charAt(i));
}
char[] deep={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
for(int j=0;j<=nilkil.size()-1;j++) {
for (int p = 0; p <=deep.length-1; p++) {
if(nilkil.get(j)==deep[p]){
nilkil.add(j,deep[p+1]);
}
}
}
System.out.println(nilkil.toString());
}
public static String encryption(String name){
name=name.replaceAll("[^a-zA-Z]" ,"");
name=name.toUpperCase();
System.out.println(name);
return name;
}
}
答案 0 :(得分:0)
您可以通过将输入字符串转换为字符数组,然后根据需要将每个ASCII字符增加1来完成此操作。有一点让你的班级名字有意义,并以Caps开头。
div_id
答案 1 :(得分:0)
请为您的问题找到正确的答案。
import java.util.*;
public class nanana {
public static void main(String[] args){
System.out.println("ENTER THE NUMBER YOU WANT ENCRYPTED");
Scanner input1=new Scanner(System.in);
String name =input1.nextLine();
name=encryption(name);
ArrayList<Character> nilkil =new ArrayList<Character>();
for(int i=0;i<=name.length()-1;i++){
nilkil.add(name.charAt(i));
}
String answer="";
char[] deep={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
for(int j=0;j<=nilkil.size()-1;j++) {
if(nilkil.get(j)=='Z') //Replacing Z with A
answer=answer+'A';
else{
for (int p = 0; p <deep.length-1; p++) {
if (nilkil.get(j) == deep[p]) {
answer = answer + deep[p + 1];
break;
}
}
}
}
System.out.println(answer);
}
public static String encryption(String name){
name=name.replaceAll("[^a-zA-Z]" ,"");
name=name.toUpperCase();
return name;
}
}