我正在研究字符串排列问题的第一部分,我只是循环字符串的第一个字符并将其与同一字符串的每个后续字符交换。我初始化了一个空的 ArrayList 来存储所有名为 listeFinale
的排列。当我打印该 ArrayList 时,我得到的是对象集合而不是值 ([[C@61bbe9ba, [C@61bbe9ba, [C@61bbe9ba, [C@61bbe9ba]
),怎么办?我打印 ArrayList 中存储的每个字符?
import java.util.ArrayList;
import java.util.List;
public class checkPermu {
public static void main(String[] args) {
String myString = "aabc";
applyPermu(myString);
}
public static void applyPermu(String toCheck){
char[] newString = toCheck.toCharArray();
List listeFinale = new ArrayList();
for(int i = 0 ; i < newString.length ; i ++){
char temp = newString[0];
newString[0] = newString[i];
newString[i] = temp;
listeFinale.add(newString);
System.out.println(listeFinale);
}
}
}
最佳答案
首先,不要使用raw types请为您的列表...更改:
List listeFinale = new ArrayList();
至:
List<char[]> listeFinale = new ArrayList<>();
至于你的实际问题。您看到的这些值是内部字符数组的默认 toString()
输出。您可以迭代列表,并为它们调用 java.util.Arrays.toString(char[])
方法,如下所示:
listeFinale.forEach(arr -> System.out.println(Arrays.toString(arr)));
或者,如果您想再次将它们作为字符串打印回来,请使用new String(char[])
:
listeFinale.forEach(arr -> System.out.println(new String(arr)));
关于java - 在Java中显示char的ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58119373/