繁体   English   中英

如何将字符串转换为字符数组 - java 8

[英]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]

tl;博士

char类型是遗留的,本质上是损坏的,并且大多数字符都失败了。 在 Ideone.com 上查看实时代码中的char fail。 在此页面上的此处此处查看我的评论。

处理单个字符时使用代码点整数。

"hello👋"
.codePoints()
.mapToObj( Character :: toString )
.toArray( String[]::new )

请参阅在 Ideone.com 上实时运行的代码

[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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM