- 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)