这段代码真的能实现遍历字符串时的回退么?

aptom aptom 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
初学Core Java(java核心技术),看到一下叙述和代码,大意是下边的代码可以实现遍历字符串(按代码点)时的回退操作
======================================
Fortunately, the codePointAt method can tell whether a code unit is the first or second half of a supplementary character, and it returns the right result either way. That is, you can move backwards with the following statements:

i--;
int cp = sentence.codePointAt(i);
if (Character.isSupplementaryCodePoint(cp)) i--;
========================================
我觉得蛮奇怪的啊
按我的理解,codePointAt方法如果碰上一个辅助代码点(supplementary code point)的low-surrogate(应该就是上边写的second half of a supplementary character吧?),会返回这个代码单元的值,而不是代码点的值。
所以上边if后面的条件,如果位置i处是一个low-surrogate,值为false,不会发生i--,这不满足move backwards的要求吧?



...全文

相关推荐

javascript克隆元素样式的实现代码

代码如下: /** * 克隆元素样式 * @param {HTMLElement} 被克隆的元素 * @param {Boolean} 是否启用缓存(默认true) * @return {String} css类名 */ var cloneStyle = (function (doc) { var rstyle = /^(number|string)$/, cloneName = ‘${cloneName}’, sData = {}, addHeadStyle = function (content) { var style = sData[doc]; if (!style) { style

weixin_38546622

算法之深度剖析KMP子字符串查找算法

在算法的学习道路上,每一次对新算法的探索都是一次成长的契机。我深知独自钻研算法的艰辛,也明白分享与交流能让学习变得更加高效和有趣。所以,今天我想把自己在学习KMP子字符串查找算法过程中的收获分享给大家,希望我们能一起学习进步,共同攻克算法世界里的各种难题。

一杯年华@编程空间

详解小白之KMP算法及python实现

在看子串匹配问题的时候,书上的关于KMP的算法的介绍总是理解不了。看了一遍代码总是很快的忘掉,后来决定好好分解一下KMP算法,算是给自己加深印象。感兴趣的朋友跟随小编一起看看吧

weixin_38617196

JS TextArea字符串长度限制代码集合

代码如下: <html> <body> <textarea id=”t”></textarea> <input type=”text” id=”b2″ /> [removed] textAreaLimit(“t”,{lastMsgLabel:”b2″}) function textAreaLimit(area,op){ var defaultOp = { maxLength:10 //最大长度 , IsNumber:false //只能是数字 , lastMsgLabel:null //即时显示可输入个数的Input , msg:”还可以输入{0}个

weixin_38661466

C++KMP算法实现(源代码)

KMP算法是一种高效的字符串匹配算法,全称为Knuth-Morris-Pratt算法。该算法由D.E.Knuth,J.H.Morris和V.R.Pratt提出,其核心思想是通过预处理模式串(也称子串)的部分匹配信息,在匹配失败时尽可能地移动模式串的指针,以减少匹配次数,从而达到快速匹配的目的。 具体实现上,KMP算法使用一个next()函数,该函数包含模式串的局部匹配信息。在匹配失败时,next()函数用来确定模式串的最左可能有效匹配位置,而非简单地将模式串重新从左向右扫描。这样大大减少了不必要的匹配次数,提高了算法的效率。 KMP算法的时间复杂度为O(n+m),其中n和m分别为主串和模式串的长度。这是因为最坏情况下,字符串匹配问题需要比较n个主串字符和m个模式串字符,即需要执行n+m次比较操作。 KMP算法的应用场景包括但不限于在字符串(也称主串)中查找子串的出现位置、计算子串在主串中出现的次数等。

孤蓬&听雨
评论 10
收藏 已收藏
分享
返回顶部
aptom
Java SE 62,621 成员 307,251 内容