java - 在Java中显示char的ArrayList

标签 java

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

Try it online.

关于java - 在Java中显示char的ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58119373/

相关文章:

java - Libgdx 鼠标刚刚点击

java - 热衷于将 EntrySet() 方法从 HashMap<Integer,Object> 移植到 trove4j?

java - HostnameVerifier 和 DefaultHostnameVerifier 之间的区别

Java字符串连接效率

java - 使用 wsdl 禁用和启用自动生成的 java 类的选项

java - 拆分 ArrayList 时出现重复

java - 编写按类获取/返回任何枚举常量的方法

java - RecyclerView 加载图像时出现滞后

java - PostgreSQL & JDBC 使用 `setArray` 设置整数数组抛出异常 "cannot cast type integer[] to integer"

java - 自定义事件监听器类