Get the App
SLTechnology News&Howtos  ›  Development  › 

How to analyze and solve the Chinese comparison problem of JAVA

Shulou Source: shulou.com Published: 2022-06-02 07:28:18 10月06日 Update

This article will explain in detail how to analyze and solve the Chinese comparison problems of JAVA. The content of the article is of high quality, so the editor will share it with you for reference. I hope you will have a certain understanding of the relevant knowledge after reading this article.

The Chinese problem of Java has existed for a long time. Not long ago, we need to do Chinese comparison and sorting in memory. After GBK or GB2312 encoding of strings, we still can not get the correct result by using String.compareTo method. So, with skepticism, I explored the source code of the String class in jdk. (using JDK version 1.3.1)

The following is the source code for compareTo in String.java, please note the comments:

Public class String

{

...

Public int compareTo (String anotherString) {

Int len1 = count

Int len2 = anotherString.count

/ / n is the minimum of two string lengths

Int n = Math.min (len1, len2)

/ / get character array

Char v1 [] = value

Char v2 [] = anotherString.value

/ / take the biased position

/ * The offset is the first index of the storage that is used. , /

/ / offset is the first storage index

Int I = offset

Int j = anotherString.offset

/ / if I = = j

/ / this may be a scenario in which two strings are fetched from the same memory.

/ / A

Tags: Characters Chinese characters strings coding Chinese questions two functions bytes order analysis internal code situation source code location memory content articles more knowledge Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno OPPO Reno MariaDB Shulou Technology Linux Shulou Tech Info