- Java.lang 包类
- Java.lang - 首页
- Java.lang - Boolean
- Java.lang - Byte
- Java.lang - Character
- Java.lang - Character.Subset
- Java.lang - Character.UnicodeBlock
- Java.lang - Class
- Java.lang - ClassLoader
- Java.lang - Compiler
- Java.lang - Double
- Java.lang - Enum
- Java.lang - Float
- Java.lang - InheritableThreadLocal
- Java.lang - Integer
- Java.lang - Long
- Java.lang - Math
- Java.lang - Number
- Java.lang - Object
- Java.lang - Package
- Java.lang - Process
- Java.lang - ProcessBuilder
- Java.lang - Runtime
- Java.lang - RuntimePermission
- Java.lang - SecurityManager
- Java.lang - Short
- Java.lang - StackTraceElement
- Java.lang - StrictMath
- Java.lang - String
- Java.lang - StringBuffer
- Java.lang - StringBuilder
- Java.lang - System
- Java.lang - Thread
- Java.lang - ThreadGroup
- Java.lang - ThreadLocal
- Java.lang - Throwable
- Java.lang - Void
- Java.lang 包额外内容
- Java.lang - 接口
- Java.lang - 错误
- Java.lang - 异常
- Java.lang 包有用资源
- Java.lang - 有用资源
- Java.lang - 讨论
Java - Character isSurrogatePair() 方法
描述
Java 的 Character isSurrogatePair() 方法用于判断一对 char 值是否为有效的 Unicode 代理对。
让我们首先了解什么是代理对以及它们在各种场景中的作用:
“代理”是 UTF-16 值,用于表示单个补充字符。补充字符是 Unicode 值,在 Unicode 系统中没有有效的表示;因此,使用一对这样的代理字符(称为代理对)来表示这些值。
对中的第一个值称为高(或前导)代理值,其下一个值称为低(或尾随)代理值。16 位高代理码点值范围在 U+D800 到 U+DBFF 之间,而 16 位低代理码点值范围在 U+DC00 到 U+DFFF 之间。
语法
以下是 Java Character isSurrogatePair() 方法的语法:
public static boolean isSurrogatePair(char high, char low)
参数
high − 要测试的高代理码值
low − 要测试的低代理码值
返回值
如果指定的高代理和低代理码值表示有效的代理对,则此方法返回 true;否则返回 false。
检查字符对是否为代码单元的代理对示例
以下示例演示了 Java Character isSurrogatePair() 方法的用法。在这个例子中,我们创建了两个 char 变量并为其分配了两个 Unicode 值。然后使用 isSurrogatePair() 方法检查字符对,并打印结果。
package com.tutorialspoint; public class CharacterDemo { public static void main(String[] args) { // create 2 char primitives ch1, ch2 char ch1, ch2; // assign values to ch1, ch2 ch1 = '\ud800'; ch2 = '\udc00'; // create a boolean primitive b boolean b; // check if ch1, ch2 is a surrogate pair and assign result to b b = Character.isSurrogatePair(ch1, ch2); String str = "ch1, ch2 is a valid Unicode surrogate pair is " + b; // print b value System.out.println( str ); } }
输出
让我们编译并运行上面的程序,这将产生以下结果:
ch1, ch2 is a valid Unicode surrogate pair is true
检查字符对是否为代码单元的代理对示例
以下示例演示了 Java Character isSurrogatePair() 方法的用法。在这个例子中,我们创建了两个 char 变量并为其分配了两个 Unicode 值。然后使用 isSurrogatePair() 方法检查字符对,并打印结果。
package com.tutorialspoint; public class SurrogatePairDemo { public static void main(String[] args) { char c1 = '\ud800'; char c2 = '\u4563'; boolean b = Character.isSurrogatePair(c1, c2); System.out.println(c1 + " and " + c2 + " are a surrogate pair is " + b); } }
输出
编译并执行程序后的输出将显示如下:
? and ? are a surrogate pair is false
检查字符对是否为代码单元的代理对示例
我们还可以使用条件语句将方法的布尔返回值作为条件传递给它。让我们看一个执行相同操作的示例。
package com.tutorialspoint; public class SurrogatePairDemo { public static void main(String[] args) { char c1 = '\ud801'; char c2 = '\udc3f'; boolean b = Character.isSurrogatePair(c1, c2); if(b) System.out.println("The characters are a surrogate pair"); else System.out.println("The characters are not a surrogate pair"); } }
输出
给定程序的输出将显示如下:
The characters are a surrogate pair
检查字符对是否为代码单元的代理对示例
在另一个示例中,我们声明并初始化两个字符数组,并使用循环语句来检查这两个数组中对应的元素是否为代理对。
package com.tutorialspoint; public class SurrogatePairDemo { public static void main(String []args){ char cp1[] = new char[] {'\ud810', '\ud967', '\ud832', '\u7843'}; char cp2[] = new char[] {'\u5637', '\udc10', '\udfff', '\udd56'}; for(int i = 0; i < cp1.length; i++) { if(Character.isSurrogatePair(cp1[i], cp2[i])) System.out.println("The character is a surrogate pair"); else System.out.println("The character is not a surrogate pair"); } } }
输出
让我们在打印以下输出之前编译并运行上面给出的程序:
The character is not a surrogate pair The character is a surrogate pair The character is a surrogate pair The character is not a surrogate pair