java检查值

标签 java android arraylist

我正在尝试搜索 alpabet 数组中的 char 是否等于 textCharArray 的元素。如果是这样,请进行一些数学运算:将字母表中的字符编号添加到 arrayList 值。但我收到错误:

java.lang.ArrayIndexOutOfBoundsException

问题应该出在 cicles 上。但我不知道如何正确修复它。 这 代码:

                outputText.setText("");
            inputTextString = inputText.getText().toString().replace(" ", ""); //panaikinami tarpa
            char[] textCharArray = inputTextString.toCharArray(); //seka paverciama char masyvu
            int l = textCharArray.length;
            char[] alphabet = {'A','B','C','D','E','F','G','H','I','K','L','M','N','O','P','Q','R','S','T','V','X','Y','Z'};
            int alpLenght = alphabet.length;
            System.out.println(alpLenght);
            stringKey = inputKey.getText().toString();
            int k = Integer.parseInt(stringKey);
            List<Integer>keyList = new ArrayList<Integer>();
            while(k > 0){
                keyList.add(k%10);
                k = k /10;
            }
            Collections.reverse(keyList);
            int j = 0;
            int temp;
            for(int i = 0; i <= l; i++){
                for(int ii = 0; ii < alpLenght; i++){
                    if(j < keyList.size()){
                        if(textCharArray[i] == alphabet[ii]){
                            temp = ii + keyList.get(j);
                            System.out.println("Uzkoduotas: " + temp);
                            }
                        j++;
                    }



                else {
                    j = 0;
                        if(textCharArray[i] == alphabet[ii]){
                            temp = ii + keyList.get(j);
                            System.out.println("Uzkoduotas: " + temp);
                        }
                    }
                    j++;
                }

最佳答案

这里有一个错误

      for(int i = 0; i <= l; i++){
            for(int ii = 0; ii < alpLenght; i++){
                if(j < keyList.size()){
                    if(textCharArray[i] == alphabet[ii]){
                        temp = ii + keyList.get(j);
                        System.out.println("Uzkoduotas: " + temp);
                        }
                    j++;
                }

由于 for 错误,你有一个无限循环,并且 i 正在递增,直到他超出范围。

您使用ii变量,但在此行中增加i:

   for(int ii = 0; ii < alpLenght; i++){

替换为

   for(int ii = 0; ii < alpLenght; ii++){

关于java检查值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10563177/

相关文章:

java - Hadoop:没有数据本地任务

android - 将十六进制 NDEF 消息写入 NFC 标签

android - 如何更正以下 xml 布局?

java - Android ArrayList 的 String 对象大小仍然为 0,尽管添加了它

java - ArrayList用不同的数据类型初始化

java - 加载百分比时 Android ProgressBar 消息发生变化

java - 尝试从 fragment 中的 AlertDialog 打开 Activity

java - 为什么我的 Unicode 字符串在从 Java Applet 传递到 Java Script 时会损坏?

java - 我想引用在不同方法中定义的内部类中的非最终变量

java - ArrayList<Boolean> 类型中的方法 toArray(T[]) 不适用于参数 (boolean[])