java - 将 unicode 字符串拆分为字符串列表

标签 java unicode

如何将包含代理对字符和普通字符的 unicode 字符串拆分为 List<String>字符数?

(需要 String 来存储由两个 char 组成的代理对字符)

最佳答案

试试这个。

String s = "😊a👦c😊";
List<String> result = List.of(s.split("(?<=.)"));
for (String e : result)
    System.out.println(e + " : length=" + e.length());

输出:

😊 : length=2
a : length=1
👦 : length=2
c : length=1
😊 : length=2

代码点

或者,使用 code point 的流整数。

List<String> result = 
    s
    .codePoints()                    // Produce a `IntStream` of code point numbers.
    .mapToObj(Character::toString)   // Produce a `String` containing one or two java chars for each code point in the stream.
    .collect(Collectors.toList());

查看此 code run live at IdeOne.com .

要捕获代码点,请使用上述代码的这种变体。

List<Integer> codePointNumbers = 
    s
    .codePoints()            
    .boxed()       
    .collect( Collectors.toList() ) ;

运行时:

codePointNumbers.toString(): [128522, 97, 128102, 99, 128522]

关于java - 将 unicode 字符串拆分为字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66788598/

相关文章:

java - 如何使用scrollView在两个 fragment 之间进行通信?

java - 使用 SuperCSV 处理具有 NULL 值的列

java - 无法在 Java 中使用枚举(错误 :Can't find symbol)

Java 命令行 Jar 文件

string - 两个字符串具有相同的语言含义是什么意思?

java - 如何忽略 SSL 证书 Java

python - Unicode 列表到字符串列表 Python 2

c++ - 在 C++ 中将 wchar 转换为 char

language-agnostic - 如何以不支持 utf-8 的格式存储 unicode 数据

android - android中的"Ə"字符