Java中将字符串转换为“字符”数组

135
我想将一个 String 转换为由 Character 类对象组成的数组,但我无法进行转换。虽然我知道可以使用 toCharArray() 方法将 String 转换为由原始数据类型 "char" 组成的数组,但它并不能帮助我将 String 转换为由 Character 类型对象组成的数组。

我该如何实现这个功能?


6
“doesn't fit with the character array” 的意思是“与字符数组不匹配”。 - barsju
你能否重新措辞或更详细地表达一下,或者提供一个代码示例? - blackcompe
要将 char 转换为 Character,请使用 Character.valueOf(mychar)。如果它是一个数组,请循环每个元素并进行转换。 - ee.
Java需要一个Map函数和Lambda表达式。 - Eric Hartford
这是一篇有关编程的文章,可以帮助您了解如何在Java中将字符数组转换为字符串。**将字符数组转换为字符串在Java中**。 - Rahul Gupta
14个回答

0

我在 java.io 中使用了 StringReader 类。它的一个函数 read(char[] cbuf) 可以将字符串的内容读入到一个数组中。

String str = "hello";
char[] array = new char[str.length()];
StringReader read = new StringReader(str);

try {
    read.read(array); //Reads string into the array. Throws IOException
} catch (IOException e) {
    e.printStackTrace();
}

for (int i = 0; i < str.length(); i++) {
        System.out.println("array["+i+"] = "+array[i]);
}

运行此代码将输出:

array[0] = h
array[1] = e
array[2] = l
array[3] = l
array[4] = o

0

如果您不想依赖第三方API,这里有一个适用于JDK7或更低版本的工作代码。我没有像其他解决方案一样实例化临时字符对象。foreach循环更易读,您可以自己看看 :)

public static Character[] convertStringToCharacterArray(String str) {
    if (str == null || str.isEmpty()) {
        return null;
    }
    char[] c = str.toCharArray();
    final int len = c.length;
    int counter = 0;
    final Character[] result = new Character[len];
    while (len > counter) {
        for (char ch : c) {
            result[counter++] = ch;
        }
    }
    return result;
}

0

String[] arr = { "abc", "cba", "dac", "cda" };
    Map<Character, Integer> map = new HashMap<>();
    String string = new String();
    for (String a : arr) {
        string = string.concat(a);

    }
    System.out.println(string);

    for (int i = 0; i < string.length(); i++) {
        if (map.containsKey(string.charAt(i))) {
            map.put(string.charAt(i), map.get(string.charAt(i)) + 1);

        } else {
            map.put(string.charAt(i), 1);

        }
    }
    System.out.println(map);

//输出 {a=4, b=2, c=4, d=2}


0
如果你正在使用JTextField,这可能会有帮助。
public JTextField display;
String number=e.getActionCommand();

display.setText(display.getText()+number);

ch=number.toCharArray();
for( int i=0; i<ch.length; i++)
    System.out.println("in array a1= "+ch[i]);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接