Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 遍历代码点:String.codePointAt vs BreakIterator vs IntStream_Java_Android_String_Unicode - Fatal编程技术网

Java 遍历代码点:String.codePointAt vs BreakIterator vs IntStream

Java 遍历代码点:String.codePointAt vs BreakIterator vs IntStream,java,android,string,unicode,Java,Android,String,Unicode,我可以使用以下两种方法之一迭代字符串的代码点: 从性能的角度来看,一个比另一个好吗?我需要在自定义视图中迭代代码点,性能是一个因素 更新 如评论中所述,最好包括CharSequence.codePoints(),这是一个IntStream。然而,我很难理解流是如何工作的。目前我已经阅读,并且。这可能需要一个新的问题 我还添加了Android标签,因为我是在Android中添加的,直到API 24才添加。从Java 8开始,有一个使用流的应用程序,可能也添加了一个?@ToddSewell,这对我

我可以使用以下两种方法之一迭代字符串的代码点:

从性能的角度来看,一个比另一个好吗?我需要在自定义视图中迭代代码点,性能是一个因素

更新

如评论中所述,最好包括
CharSequence.codePoints()
,这是一个
IntStream
。然而,我很难理解流是如何工作的。目前我已经阅读,并且。这可能需要一个新的问题


我还添加了Android标签,因为我是在Android中添加的,直到API 24才添加。

从Java 8开始,有一个使用流的应用程序,可能也添加了一个?@ToddSewell,这对我来说是一个新的应用程序。谢谢你让我知道。从Java 8开始,有一个使用流的软件,也许还可以添加这个软件?@ToddSewell,这对我来说是一个新的软件。谢谢你让我知道。
final int length = s.length();
for (int offset = 0; offset < length; ) {
   final int codepoint = s.codePointAt(offset);

   // do something with the codepoint

   offset += Character.charCount(codepoint);
}
BreakIterator boundary = BreakIterator.getCharacterInstance();
boundary.setText(s);
int start = boundary.first();
for (int end = boundary.next(); end != BreakIterator.DONE; end = boundary.next()) {
    int codepoint = text.substring(start, end);

    // do something with the codepoint

    start = end;
}