[英]how to convert a string into an array of characters - java 8
传入字符串:你好
用 ["h"、"e"、"l"、"l"、"o"] 填充 arrayA[ ];
不使用任何包或导入
int size = a.length();
String arrayA[] = new String[size];
for(int i = 0; i<size; i++){
//pass each index in the string to arrayA
}
我相信这可以使用String#split
来解决。
String[] lettersOfHello = "hello".split("");
如果它预装在 Java 8 中或直到以后的包才引入,则需要回过头来。
这是一个解决方案:
java.util.Arrays
以便它可以打印出字符数组进行验证,但这仅适用于这个答案,与代码解决方案本身没有任何关系。java.lang.String
- 您的预期输出["h", "e", "l", "l", "o"]
可能是一个字符串数组(双引号),但看起来它也可以作为字符使用import java.util.Arrays;
String s = "hello";
Character[] chars = new Character[s.length()];
for (int i = 0; i < s.length(); i++) {
chars[i] = s.charAt(i);
}
System.out.println("chars[]: " + Arrays.toString(chars));
这是输出:
chars[]: [h, e, l, l, o]
char
类型是遗留的,本质上是损坏的,并且大多数字符都失败了。 在 Ideone.com 上查看实时代码中的char
fail。 在此页面上的此处和此处查看我的评论。
处理单个字符时使用代码点整数。
"hello👋"
.codePoints()
.mapToObj( Character :: toString )
.toArray( String[]::new )
[h, e, l, l, o, 👋]
代码点是永久分配给由 Unicode 标识的每个字符的数字。
int[] codePoints = "hello".codePoints().toArray() ;
[104、101、108、108、111]
获取每个代码点的字符。
List< String > lettersOfHello =
Arrays
.stream( codePoints )
.mapToObj( Character :: toString )
.toList()
;
请参阅在 Ideone.com 上实时运行的代码。
[你好]
这可以使用toCharArray()
来完成。
String foo = "example";
char[] fooChars = foo.toCharArray();
如果你真的想要每个字符的字符串数组,你可以简单地使用.toString()
。
String[] fooChars = new String[foo.length()];
for(int i = 0; i < foo.length(); i++){
fooChars[i] = foo.charAt(i).toString();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.