【问题标题】:Replace one by one values of an array list and store the values of another array using for loop逐个替换数组列表的值并使用 for 循环存储另一个数组的值
【发布时间】:2018-06-10 16:45:52
【问题描述】:

如何用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;
    }
}

【问题讨论】:

  • 它没有运行但你不知道错误?发生什么了?它会崩溃吗?不需要输出?
  • 当我提供像 asdd 这样的输入时,控制台只返回 ASDD 但它应该返回 BTEE ????

标签: java arrays loops arraylist


【解决方案1】:

您可以通过将输入字符串转换为字符数组然后根据需要将每个 ASCII 字符加 1 来实现。一件事让你的类名有意义并以大写开头。

public class CharacterConversion{
     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();

            char[] namesArray = name.toCharArray();

            for(int i=0;i<namesArray.length;i++){
              namesArray[i] = (char) (namesArray[i]+1);
            }
            System.out.println(new String(namesArray));
        }

        public static String encryption(String name){
            name=name.replaceAll("[^a-zA-Z]" ,"");
            name=name.toUpperCase();
            System.out.println(name);
            return name;
        }

}

【讨论】:

  • 输入a1b2c3,输出B2C3D4。 (它不会删除 OP 想要的数字)
【解决方案2】:

请为您的问题找到正确答案。

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;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 2016-11-27
    • 2014-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多