【问题标题】:Cant adding chars in to ArrayList<Character>?无法在 ArrayList<Character> 中添加字符?
【发布时间】:2018-09-18 07:07:16
【问题描述】:

我在将字符添加到 ArrayList 时遇到了麻烦 到目前为止,我有:

ArrayList<Character> chars = new ArrayList<Character>();
String s = "abcd";
    for(int i = 0; i<s.length()-1; i++) {
        chars.add(i, s.charAt(i));  
    }

但是将字符添加到列表中似乎存在问题。有人可以帮忙吗?

chars.add(s.charAt(i)); 

对我不起作用,它一直说 char 不适用于 ArrayList

【问题讨论】:

  • chars.add(s.charAt(i));
  • 请粘贴整个代码,以便我们看到您的s 变量。
  • s的类型是什么?
  • 你有没有在同一个包中编写自己的Character 类?
  • @VGR 不,我没有我写的主要方法就是这样

标签: java arrays char character


【解决方案1】:

如果您只想将字符串转换为字符数组列表,请尝试以下操作:

String s = "abc";
char[] c = s.toCharArray();
Arraylist<Character> chars = Arrays.asList(c);

如果你愿意,也可以在一行中完成:

Arraylist<Character> chars = Arrays.asList("abc".toCharArray());

基本上,Arrays.asList() 会返回一个列表,该列表维护您的数组的相同顺序。因此,当您将 String 转换为字符数组并使用 Arrays.asList 将其转换为列表时,与您所做的相同chars.add(i, s.charAt(i));

【讨论】:

    【解决方案2】:

    试试这个你应该很好。

    代码:

    ArrayList<Character> chars = new ArrayList<Character>();
       s = "abcd";
            for(int i = 0; i<s.length(); i++) {
                chars.add(s.charAt(i));  
            }
    

    【讨论】:

    • 那不会编译。字符串没有公共的length 字段,只有一个length() 方法。
    • 另外,无论如何,原始作品......问题中缺少信息
    【解决方案3】:

    这是一种在 Java 8 中可能更简洁的方法:

    String s = "a";
    List<Character> c = 
            s.chars()
            .mapToObj(x->Character.valueOf((char) x))
            .collect(Collectors.toList());
    

    【讨论】:

    • 那不干净。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 2019-04-20
    • 1970-01-01
    • 2015-01-16
    • 2011-06-30
    • 1970-01-01
    相关资源
    最近更新 更多