java utf16_Java UTF16.isSurrogate方法代码示例

这段代码展示了如何使用Java的UTF16类进行字符分解操作,特别是在处理代理对(surrogate pairs)时。通过检查代码单元是否低于最小值或具有无关数据,然后使用UTF16.isSurrogate方法判断是否为代理字符,进一步处理Unicode代理对。
摘要由CSDN通过智能技术生成

import com.ibm.icu.text.UTF16; //导入方法依赖的package包/类

public int decompose(CharSequence s, int src, int limit,

ReorderingBuffer buffer) {

int minNoCP=minDecompNoCP;

int prevSrc;

int c=0;

int norm16=0;

// only for quick check

int prevBoundary=src;

int prevCC=0;

for(;;) {

// count code units below the minimum or with irrelevant data for the quick check

for(prevSrc=src; src!=limit;) {

if( (c=s.charAt(src))

isMostDecompYesAndZeroCC(norm16=normTrie.getFromU16SingleLead((char)c))

) {

++src;

} else if(!UTF16.isSurrogate((char)c)) {

break;

} else {

char c2;

if(UTF16Plus.isSurrogateLead(c)) {

if((src+1)!=limit && Character.isLowSurrogate(c2=s.charAt(s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值