【问题标题】:Why isnt the array adding the character's in the below program?为什么数组不在下面的程序中添加字符?
【发布时间】:2020-07-08 21:02:15
【问题描述】:
import java.util.Arrays;

public class CharacterList {

    private char [] charArray;
    private int count;

    public CharacterList(int arraySize){

        charArray = new char[arraySize];

        for(int i = 0; i<charArray.length; i++){
            charArray[i] = ' ';
        }

        count = 0;

    }

    public int indexOf(char searchingChar) {

        for (int i = 0; i < charArray.length; i++) {

            if(charArray[i] == searchingChar){
                return i;
            }

        }
        return -1;

    }


    public boolean addCharacter(char characterToAdd){

        if(indexOf(characterToAdd) == -1 && charArray[charArray.length-1] != ' '){

            doubleArrayCapacity();
            for(int i = 0; i<charArray.length; i++){

                if(charArray[i] == ' '){

                    charArray[i] = characterToAdd;
                }
            }
            count ++;
            return true;

        } else if(indexOf(characterToAdd) == -1){

            for(int i = 0; i<charArray.length; i++){

                if(charArray[i] == ' '){

                    charArray[i] = characterToAdd;
                }
            }
            count++;
            return true;

        } else
            return false;

    }

    public String toString(){

        return Arrays.toString(charArray);
    }


}

output:
Entered command: 1
a was added
Entered command: 1
b was added
Entered command: 1
c was added
Entered command: 1
d was added
Entered command: 3
[a, a,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ]

上面的代码是一类。 (为了便于阅读,没有给出其他类)。我尝试输入 a、b、c(我想在数组中添加这些元素)。但是,会出现上述输出。我哪里错了?

【问题讨论】:

  • 您的预期输出是什么?
  • 可以添加doubleArrayCapacity()的实现吗?
  • @Kacper private void doubleArrayCapacity() { char [] newCharArray = new char[this.charArray.length*2]; for(int i=0; i
  • 您可以编辑您的问题并将其添加到其中吗?
  • @Kacper 我试过了。系统不允许我,因为代码太多。很抱歉给您带来不便。

标签: java return


【解决方案1】:

a) 对于您添加字符的位置,您不会停止,直到您从第一个点开始用字符填充所有数组。 意思是,当你插入'a'时,数组看到'a'没有显示,所有数组都是空的,所以'a'被插入到第一个位置,i = i+1,那个地方也是空的所以'a'被插入到第二位。数组应该已经满了,我不知道为什么它只插入了两个 a,而是向你发送主代码 plz。 b) 你为什么使用计数?我看到你只更新它而不使用它......

【讨论】:

    猜你喜欢
    • 2020-01-29
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多