【问题标题】:How to convert object[] to char[] in Java?如何在 Java 中将 object[] 转换为 char[]?
【发布时间】:2021-08-22 01:46:41
【问题描述】:

有没有办法将 object[] 转换为 char[] ?

HashSet<Character> set = new HashSet<>();
...
// Can the set of characters be converted to char array something like below?
// char[] letters = set.toArray(new char[set.size()]);

【问题讨论】:

  • 可能不是字符,而是字符肯定(自动)......你可能应该看看流,并将字符映射到字符

标签: java arrays object char hashset


【解决方案1】:

Java 中如何将 object[] 转换为 char[]?

没有比这更直接的了。

Object[] s = { 'a', 'b', 'c' };
char[] arr = new char[s.length];
for (int i = 0; i < s.length; i++) {
    arr[i] = (char)s[i];
}
System.out.println(Arrays.toString(arr));

打印

[a, b, c]

对于设定的情况,可以采取类似的方法。

set.add('x');
set.add('y');
set.add('z');

char[] arr = new char[set.size()];
int i = 0;
for (Character c : set) {
    arr[i++] = c.charValue();
}
System.out.println(Arrays.toString(arr));

打印

[x, y, z]

或流媒体版本。

char[] arr = set.stream().map(c -> Character.toString((char) c))
        .collect(Collectors.joining()).toCharArray();

【讨论】:

    【解决方案2】:

    使用 toArray() 方法并强制转换为Character[],然后将元素复制到char[](您不能将Character[] 直接强制转换为char[]):

    HashSet<Character> set = new HashSet<>();
    Character[] cLetters = (Character[]) set.toArray();
    char[] letters = new char[cLetters.length];
    // copy the values
    for (int i = 0; i < cLetters.length; i++) {
        letters[i] = cLetters[i];
    }
    

    【讨论】:

      【解决方案3】:

      如果ObjectCharacter

      HashSet<Character> set = new HashSet<>();
      StringBuilder sb = new StringBuilder();
      set.forEach(sb::append);
      char[] letters = sb.toString().toCharArray();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-26
        • 1970-01-01
        • 1970-01-01
        • 2011-04-22
        • 1970-01-01
        • 2013-04-01
        • 2018-07-28
        相关资源
        最近更新 更多