- 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 codePointCount() 方法
描述
Java 的 Character codePointCount() 方法用于计算特定字符序列文本范围内的 Unicode 代码点数。
文本范围从某个起始索引开始,扩展到结束索引之前的字符。因此,文本范围的长度(以字符为单位)是结束索引 - 起始索引。
注意 - 文本范围内的未配对代理字符每个计为一个代码点。
语法
以下是 Java Character codePointCount() 方法的语法
public static int codePointCount(CharSequence seq, int beginIndex, int endIndex) or, public static int codePointCount(char[] a, int offset, int count)
参数
seq - 字符序列
beginIndex - 文本范围第一个字符的索引
endIndex - 文本范围最后一个字符之后的索引
a - 字符数组
offset - 字符数组第一个字符的索引
count - 子数组的长度(以字符为单位)
返回值
此方法返回指定文本范围或子数组中的 Unicode 代码点数。
使用给定索引在 CharSequence 中获取代码点数示例
以下示例显示了 Java Character codePointCount(CharSequence seq, int beginIndex, int endIndex) 方法的使用。当我们将 CharSequence 和索引值作为参数传递给 codePointCount(CharSequence seq, int beginIndex, int endIndex) 方法时,返回值是在给定 CharSequence 中给定范围内存在的 Unicode 字符的数量。
package com.tutorialspoint; public class CharacterDemo { public static void main(String[] args) { // create a CharSequence seq and assign value CharSequence seq = "Hello World!"; // create and assign value to bi, ei int bi = 4, ei = 8; // create an int res int count; // assign result of codePointCount on seq to res using bi, ei count = Character.codePointCount(seq, bi, ei); String str = "No. of Unicode code points is " + count; // print count value System.out.println( str ); } }
输出
让我们编译并运行上述程序,这将产生以下结果:
No. of Unicode code points is 4
使用给定索引在字母 CharSequence 中获取代码点数示例
除了字母字符序列之外,让我们将数字字符序列作为参数传递给此方法。返回值将是文本范围内存在的数字的数量。
public class CharacterDemo { public static void main(String args[]) { CharSequence ch = "0123456789"; int result = Character.codePointCount(ch, 3, 7); System.out.println("The unicode code point count in given character sequence is " + result); } }
输出
我们必须编译并运行上述给定程序以获得如下输出:
The unicode code point count in given character sequence is 4
使用给定索引在 CharSequence 中获取代码点数示例
以下示例显示了 Java Character codePointCount(char[] a, int offset, int count) 方法的使用。当我们将 char[] 和索引值作为参数传递给 codePointCount(char[] a, int offset, int count) 方法时,返回值是在给定 char[] 中给定范围内存在的 Unicode 字符的数量。
package com.tutorialspoint; public class CharacterDemo { public static void main(String[] args) { // create a char a[] and assign value char a[] = {'t', 'u', 't', 'o', 'r', 'i', 'a', 'l', 's'}; // create and assign value to offset, count int offset = 2, count = 5; // create an int res int res; // assign result of codePointCount on a[] to res using offset, count res = Character.codePointCount(a, offset, count); // print count value System.out.println("No. of Unicode code points is " + res); } }
输出
如果我们编译并运行上述程序,则将显示以下结果:
No. of Unicode code points is 5
在 CharSequence 中使用无效索引获取代码点数时遇到异常示例
但是,当结束索引大于字符序列参数的长度时,此方法会抛出 IndexOutOfBounds 异常。
package com.tutorialspoint; public class CharacterDemo { public static void main(String[] args) { // assign value to seq CharSequence seq = "Hello World!"; // create and assign value to bi, ei such that the program throws an exception int bi = 4, ei = 18; // create an int res int res; // call the codePointCount method result = Character.codePointCount(seq, bi, ei); // print res value System.out.println("No. of Unicode code points is " + res); } }
异常
在编译并运行上述程序时,将抛出以下异常:
Exception in thread "main" java.lang.IndexOutOfBoundsException at java.lang.Character.codePointCount(Character.java:5225) at com.tutorialspoint.CharacterDemo.main(CharacterDemo.java:19)
在给定索引处使用 null CharSequence 获取代码点数时遇到异常示例
但是,如果 CharSequence 初始化为 null 值并作为参数传递给方法,则会引发 NullPointer 异常。
package com.tutorialspoint; public class CharacterDemo { public static void main(String[] args) { // create a CharSequence seq and assign value CharSequence seq = null; // create and assign value to bi, ei int bi = 4, ei = 8; // create an int res int res; // assign result of codePointCount on seq to res using bi, ei res = Character.codePointCount(seq, bi, ei); String str = "No. of Unicode code points is " + res; // print res value System.out.println( str ); } }
异常
程序抛出 NullPointer 异常,而不是显示如下输出:
Exception in thread "main" java.lang.NullPointerException at java.lang.Character.codePointCount(Character.java:5223) at com.tutorialspoint.CharacterDemo.main(CharacterDemo.java:19)