首页 > 解决方案 > 在Java中显示char的ArrayList

问题描述

我正在研究字符串置换问题的第一部分,我只是循环字符串的第一个字符并将其与同一字符串的每个后续字符交换。我初始化了一个空的 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);
    }
  }
}

标签: java

解决方案


首先,请不要为您的列表使用原始类型.. 更改:

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

在线尝试。


推荐阅读