博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java String codePoint相关api
阅读量:5162 次
发布时间:2019-06-13

本文共 1198 字,大约阅读时间需要 3 分钟。

codePoint

  • 代码点&代码单元,是从Unicode标准而来的术语,Unicode标准的核心是一个编码字符集
  • 在java中, 一个字符, 仅仅代表一个代码点(codePoint),
    但却有可能代表多个代码单元(在java中就是两个字节, 一个char),比如表情符?,
    只代表一个代码点, 却占着两个char

java api

  • 首先看一下表情符的length()长度
int length = "?".length();System.out.println("length " + length);//2
  • int codePointAt(int index): 返回char数组的给定索引上的代码点
int at1 = "?".codePointAt(0);System.out.println("at1 " + at1);//128513int at2 = "?".codePointAt(1);System.out.println("at2 " + at2);//56833
  • int codePointBefore(int index): 这里有疑惑, 按理说应该返的代码点值跟上面方法一样才对
int before1 = "?".codePointBefore(1);System.out.println("before1 " + before1);//55357int before2 = "?".codePointBefore(2);System.out.println("before2 " + before2);//128513
  • int codePointCount(int beginIndex, int endIndex): 返回某个索引区间的代码点数量,
    我们重点用这个
int count = "?".codePointCount(0, "?".length()-1);System.out.println("count " + count);//1
  • IntStream codePoints(): 返回所有代码点值的Stream
"?".codePoints().boxed().forEach(        integer -> System.out.println(integer));
  • int offsetByCodePoints(int index, int codePointOffset): 头疼, 后边再分析
int offset = "??".offsetByCodePoints(1, 2);System.out.println("offset " + offset);//4

参考资料

总结的时候发现还是有些疑问的, 烦烦烦, 待续吧

转载于:https://www.cnblogs.com/simple-huang/p/8643799.html

你可能感兴趣的文章
Java NIO vs. IO
查看>>
BIO、NIO、AIO通信机制
查看>>
STL priority_queue<> 用法 <转>
查看>>
POJ-3009 Curling 2.0 简单BFS
查看>>
vs 2010 快捷键
查看>>
ref用于类类型
查看>>
canvas
查看>>
Balanced Binary Tree
查看>>
java学习------环境安装与配置
查看>>
日期时间函数
查看>>
Testing from Eclipse with ADT 翻译
查看>>
五句话搞定JavaScript作用域(ES5)
查看>>
UVA1602
查看>>
清理系统垃圾代码 李德鹏
查看>>
$_SERVER 等超全局数组的用法 $_COOKIE $_GET $_SESSION
查看>>
20155308 加分题-mybash的实现(第五周)
查看>>
C#调用R语言
查看>>
nodeJs是什么
查看>>
Oracle数据库sys和system用户的默认密码及如何修改密码
查看>>
网络I/O模型--06异步I/O
查看>>