如何获取包含Java中前N个unicode字符的子字符串

时间:2014-01-28 04:41:53

标签: java unicode substring

Java中的String数据类型让我们知道codePointCount在字符串中退出了多少个unicode字符;以及如何通过codePointAt获取第n个unicode char。我想知道是否有一个API来获取包含Java中前N个unicode字符的子字符串。

谢谢,

2 个答案:

答案 0 :(得分:9)

没有一种方法可以在一次通话中执行此操作,但offsetByCodePoints()可以帮助您完成此操作。

static String substring(String str, int idx, int len) {
  return str.substring(idx, str.offsetByCodePoints(idx, len));
}

答案 1 :(得分:0)

参见Java源代码:java.util.stream.Collectors#joining()

.codePoints().limit(255) // limit as you need
    .collect(StringBuilder::new, StringBuilder::appendCodePoint, null)