我在 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
如果您不想依赖第三方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;
}
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}
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]);
char
转换为Character
,请使用Character.valueOf(mychar)
。如果它是一个数组,请循环每个元素并进行转换。 - ee.