- 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 codePointBefore() 方法
描述
Java 的Character codePointBefore() 方法将检索字符数组中某个字符索引之前字符的码点。这些码点可以表示普通字符和补充字符。
当字符数组中给定索引之前的数值满足以下条件时,将获得补充码点字符:
如果 (index-2) 位置的 char 值属于高代理范围 (U+D800 到 U+DBFF) 且非负。
如果前一个索引处的数值属于低代理范围 (U+DC00 到 U+DFFF)。
在任何其他情况下,将获得普通码点字符。
注意 - 此方法以多种多态形式出现,具有不同的参数。
语法
以下是使用不同和扩展参数的 Java Character codePointBefore() 方法的各种语法。
public static int codePointBefore(char[] a, int index) (or) public static int codePointBefore(CharSequence seq, int index) (or) public static int codePointBefore(char[] a, int index, int start)
参数
a - char 数组
index - 应该返回的码点之后的索引
start - char 数组中第一个数组元素的索引。
seq - CharSequence 实例
返回值
此方法返回给定索引之前的 Unicode 码点值。
在给定索引的 char 数组中获取前导字符的码点示例
以下示例演示了 Java Character codePointBefore() 方法的用法。当我们采用简单的字符数组和指定的小于数组长度的索引作为方法的参数时,返回值将是该索引处前导字符的码点。
package com.tutorialspoint;
public class CharacterDemo {
public static void main(String[] args) {
// create a char array c and assign values
char[] c = new char[] { 'a', 'b', 'c', 'd', 'e' };
// create and assign value to index
int index = 2;
// create an int res
int res;
// assign result of codePointBefore on array c at index to res
res = Character.codePointBefore(c, index);
String str = "Unicode code point is " + res;
// print res value
System.out.println( str );
}
}
输出
让我们编译并运行上述程序,这将产生以下结果:
Unicode code point is 98
在给定索引的 CharSequence 中获取前导字符的码点示例
当我们将 CharSequence 和索引值作为参数传递给 codePointBefore(CharSequence seq, int index) 方法时,返回值是给定 CharSequence 中索引处的前导字符。
package com.tutorialspoint;
public class CharacterDemo {
public static void main(String[] args) {
CharSequence seq = "Hello";
int index = 4;
int res;
// assign result of codePointBefore on seq at index to res
res = Character.codePointBefore(seq, index);
String str = "Unicode code point is " + res;
System.out.println( str );
}
}
输出
让我们编译并运行上述程序,这将产生以下结果:
Unicode code point is 108
示例
以下示例演示了 Java Character codePointBefore(char[] a, int index, int start) 方法的用法。
package com.tutorialspoint;
public class CharacterDemo {
public static void main(String[] args) {
char[] c = new char[] { 'A', 'b', 'C', 'd'};
int index = 3, start = 1;
int res;
// assign result of codePointBefore on c array at index to res using start
res = Character.codePointBefore(c, index, start);
String str = "Unicode code point is " + res;
System.out.println( str );
}
}
输出
让我们编译并运行上述程序,这将产生以下结果:
Unicode code point is 67
在 char 数组中使用无效索引获取前导字符的码点时遇到异常的示例
如果将无效索引作为参数传递给方法,则会引发 ArrayIndexOutOfBoundsException 异常。
package com.tutorialspoint;
public class CharacterDemo {
public static void main(String[] args) {
// create a char array c and assign values
char[] c = new char[] { 'a', 'b', 'c', 'd', 'e' };
// create and assign a negative value to index to throw an ArrayIndexOutOfBoundsException exception
int index = -1;
// create an int res
int res;
// assign result of codePointBefore on array c at index to res
res = Character.codePointBefore(c, index);
String str = "Unicode code point is " + res;
// print res value
System.out.println( str );
}
}
异常
在编译和执行上述程序时,该方法会抛出如下异常:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -2 at java.lang.Character.codePointBeforeImpl(Character.java:5055) at java.lang.Character.codePointBefore(Character.java:5016) at com.tutorialspoint.CharacterDemo.main(CharacterDemo.java:19)
在给定索引的 null CharSequence 中获取前导字符的码点时遇到异常的示例
但是,如果将 CharSequence 初始化为 null 值并将其作为参数传递给方法,则会引发 NullPointerException 异常。
package com.tutorialspoint;
public class CharacterDemo {
public static void main(String[] args) {
CharSequence seq = null;
int index = 9;
int output = Character.codePointBefore(seq, index);
System.out.println(output);
}
}
异常
在编译和执行上述程序时,该方法会抛出如下异常:
Exception in thread "main" java.lang.NullPointerException at java.lang.Character.codePointBefore(Character.java:4984)at com.tutorialspoint.CharacterDemo.main(CharacterDemo.java:10)