当前位置: 主页 > JAVA语言

java找出字符串不同处-找出图中10处安全隐患

发布时间:2023-06-01 07:12   浏览次数:次   作者:佚名

一、string.length()方法

    /**
     * Returns the length of this string.
     * The length is equal to the number of Unicode
     * code units in the string.
     *
     * @return  the length of the sequence of characters represented by this
     *          object.
     */
    public int length() {
        return value.length;
    }

返回字符串的长度等于字符串中的 Unicode 代码单元数目

Unicodecode units

二、

java内码:unicode(utf-16)中使用的是utf-16.所以上面的那句话再进一步解释就是:返回字符串的长度java找出字符串不同处,这一长度等于字符串中的UTF-16的代码单元的数目。

UTF-X 中的数字 X 就是各自代码单元的位数。

UTF-16 的 16 指的就是最小为 16 位一个单元,也即两字节为一个单元,

java找出字符串不同处_java找出字符串中的数字_找出图中10处安全隐患

码点(身份证号):U+XXXXXX 是码点的表示形式,X 代表一个十六制数字,可以有 4-6 位,不足 4 位前补 0 补足 4 位,超过则按是几位就是几位。

字符A 65 十六进制41,码点表示就是U+0041;

字符B 码点表示就是U+0042;

汉字"你"的字符表示是“U+4F60”;

”彬“字符”“ 5f6c

汉字"杨"的字符表示是“U+6768”;

## 获取正确的字符个数

String.length() 为了历史兼容,不再维护了;他返回的就是码单UnicodeUnit个数;1个或2个

System.out.println(B.codePointCount(0,B.length())); 可以返回码点个数;

#代码点数和代码单元关系

它的代码点是U+1D11E,

但它的代理单元是U+D834和U+DD1E,【也叫代码单元】

,那么机器会识别它是2个代码单元代理java找出字符串不同处,但是是1个代码点(那个音符字符),故而,length的结果是代码单元数量2,而codePointCount()的结果是代码点数量1.

BMP(Basic Multilingual Plane 基本多语言平面)

SP(Supplementary Planes)补充平面

代理区(Surrogate Area)