使用这个:
String str = "testString";
char[] charArray = str.toCharArray();
Character[] charObjectArray = ArrayUtils.toObject(charArray);
ArrayUtils
是来自于 commons-lang
而不是 JDK,对吗? - Ericorg.apache.commons.lang
。 - java dev一行代码,包含java-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
上(你需要进行强制转换来确保它实际上是一个char
,然后Java会自动将其装箱为Character
)toArray()
获取结果数组为什么不自己写一个小方法呢?
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++) {
/*
Character(char) is deprecated since Java SE 9 & JDK 9
Link: https://docs.oracle.com/javase/9/docs/api/java/lang/Character.html
array[i] = new Character(s.charAt(i));
*/
array[i] = s.charAt(i);
}
return array;
}
将字符串转换为字符数组,然后将字符数组转换回字符串
//Givent String
String given = "asdcbsdcagfsdbgdfanfghbsfdab";
//Converting String to Character Array(It's an inbuild method of a String)
char[] characterArray = given.toCharArray();
//returns = [a, s, d, c, b, s, d, c, a, g, f, s, d, b, g, d, f, a, n, f, g, h, b, s, f, d, a, b]
//一种方法:将字符数组转换回字符串
int length = Arrays.toString(characterArray).replaceAll("[, ]","").length();
//First Way to get the string back
Arrays.toString(characterArray).replaceAll("[, ]","").substring(1,length-1)
//returns asdcbsdcagfsdbgdfanfghbsfdab
or
// Second way to get the string back
Arrays.toString(characterArray).replaceAll("[, ]","").replace("[","").replace("]",""))
//returns asdcbsdcagfsdbgdfanfghbsfdab
//第二种方法:将字符数组转换回字符串
String.valueOf(characterArray);
//第三种方式:将字符数组转换回字符串
Arrays.stream(characterArray)
.mapToObj(i -> (char)i)
.collect(Collectors.joining());
将字符串转换为字符数组
Character[] charObjectArray =
givenString.chars().
mapToObj(c -> (char)c).
toArray(Character[]::new);
将字符数组转换为字符对象数组
String givenString = "MyNameIsArpan";
char[] givenchararray = givenString.toCharArray();
String.valueOf(givenchararray).chars().mapToObj(c ->
(char)c).toArray(Character[]::new);
将char数组转换为Character数组的好处是,您可以使用Arrays.stream函数获取子数组
String subStringFromCharacterArray =
Arrays.stream(charObjectArray,2,6).
map(String::valueOf).
collect(Collectors.joining());
String s="Welcome to Java Programming";
char arr[]=s.toCharArray();
for(int i=0;i<arr.length;i++){
System.out.println("Data at ["+i+"]="+arr[i]);
}
这是有效的,输出结果如下:
Data at [0]=W
Data at [1]=e
Data at [2]=l
Data at [3]=c
Data at [4]=o
Data at [5]=m
Data at [6]=e
Data at [7]=
Data at [8]=t
Data at [9]=o
Data at [10]=
Data at [11]=J
Data at [12]=a
Data at [13]=v
Data at [14]=a
Data at [15]=
Data at [16]=P
Data at [17]=r
Data at [18]=o
Data at [19]=g
Data at [20]=r
Data at [21]=a
Data at [22]=m
Data at [23]=m
Data at [24]=i
Data at [25]=n
Data at [26]=g
在这种情形下,您需要自己编写方法。使用循环,并使用 charAt(i)
获取每个字符,并将其设置为 Character[]
数组,使用 arrayname[i] = string.charAt(i)
。
String#toCharArray
返回一个 char
数组,而你拥有的是一个 Character
数组。在大多数情况下,使用 char
或 Character
都没有关系,因为有 自动装箱。但在你的情况下,问题在于数组不会自动装箱,建议你使用一个 char 数组(char[]
)。
另一种做法。
String str="I am a good boy";
char[] chars=str.toCharArray();
Character[] characters=new Character[chars.length];
for (int i = 0; i < chars.length; i++) {
characters[i]=chars[i];
System.out.println(chars[i]);
}
这个方法接受一个字符串作为参数,并返回字符数组
/**
* @param sourceString
* :String as argument
* @return CharcterArray
*/
public static Character[] toCharacterArray(String sourceString) {
char[] charArrays = new char[sourceString.length()];
charArrays = sourceString.toCharArray();
Character[] characterArray = new Character[charArrays.length];
for (int i = 0; i < charArrays.length; i++) {
characterArray[i] = charArrays[i];
}
return characterArray;
}
链式编程总是最好的 :D
String str = "somethingPutHere";
Character[] c = ArrayUtils.toObject(str.toCharArray());
char
转换为Character
,请使用Character.valueOf(mychar)
。如果它是一个数组,请循环每个元素并进行转换。 - ee.