gpt4 book ai didi

Java从char数组中删除重复项的方法

转载 作者:行者123 更新时间:2023-11-30 03:25:00 25 4
gpt4 key购买 nike

我有一个由用户(arrayInput[])填充的字符数组,其中包含一些字符,例如 {b, d, a, b, f, a, g, a, a, f} ,并且我需要创建一个方法,该方法返回一个新的 char 数组,其中仅包含该字符的第一次出现,但按输入顺序排列。书中还说“解决这个问题的一种方法是创建一个 boolean 数组来跟踪要维护的字符!”,但我无法想象 boolean 数组应该如何与其他数组一起使用。

主要问题是,如果 arrayInput 包含特定字符,甚至可以保存多少次,我可以保存在 boolean 数组中,但只能在 for 中创建一个非常长的分支 if-else,例如

    if ((arrayOutput[i] == 'A') && (arrayControl[0] = false)) {
arrayControl[0] = true; }

其中 arrayOutput 是我想要从该方法返回的数组,arrayControl[0] 是我在该方法中创建的 boolean 数组中“A”的值。 A = 0,B = 1,...Z = 25,a = 26,b = 27,...51 = z。对于每个字符,无论大写还是小写,我都在数组中创建了一个位置,这样我就可以检查所有内容,但现在我不能再进一步了。我不知道如何将字符保存在 arrayOutput 上,如何检查字符是否已经在 arrayOutput 上,如果它已经存在,则数组会传递该特定字符并转到下一个。

还请记住,我是一个新手,所以我对 Java 知之甚少。请尽可能地解释一下自己。提前致谢!

最佳答案

这可行:

public static void main(String[] args) {
Main main = new Main();
char[] array = {'e','a','b','a','c','d','b','d','c','e'};
main.getCharArray(array);
}

private char[] getCharArray(char[] array) {
String _array = "";
for(int i = 0; i < array.length; i++) {
if(_array.indexOf(array[i]) == -1) // check if a char already exist, if not exist then return -1
_array = _array+array[i]; // add new char
}
return _array.toCharArray();
}

输出:

eabcd

关于Java从char数组中删除重复项的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30465486/

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