问题

我想将aString转换为Characterclass的对象数组,但我无法执行转换。我知道我可以使用toCharArray()方法将String转换为原始数据类型类型为"char"的数组,但它无法将String转换为Charactertype的对象数组。

我该怎么做呢?


#1 热门回答(159 赞)

用这个:

String str = "testString";
char[] charArray = str.toCharArray();
Character[] charObjectArray = ArrayUtils.toObject(charArray);

#2 热门回答(42 赞)

一个内衬withjava-8:

String str = "testString";

//[t, e, s, t, S, t, r, i, n, g]
Character[] charObjectArray = 
    str.chars().mapToObj(c -> (char)c).toArray(Character[]::new);

它的作用是:

  • 获取字符的IntStream(你可能还想查看codePoints())
  • 将每个'character'值映射到Character(你需要强制转换为实际上说它真的是一个char,然后Java会将它自动封装到Character)
  • 通过调用toArray()获取结果数组

#3 热门回答(32 赞)

为什么不亲自写一点方法

public Character[] toCharacterArray( String s ) {

   if ( s == null ) {
     return null;
   }

   int len = s.length();
   Character[] array = new Character[len];
   for (int i = 0; i < len ; i++) {
      array[i] = new Character(s.charAt(i));
   }

   return array;
}

原文链接