- 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 - String offsetByCodePoints() 方法
Java String offsetByCodePoints() 方法返回字符串对象中从指定索引偏移 codePointOffset 个码点后的索引。
码点是 Unicode 系统中用于标识符号的数值。偏移量是正在使用的存储区的第一个索引。
文本范围内的不成对代理项将被视为各一个码点。
语法
以下是Java String offsetByCodePoints() 方法的语法:
public int offsetByCodePoints(int index, int codePointOffset)
参数
index − 这是要偏移的索引。
codePointOffset − 这是以码点为单位的偏移量。
返回值
此方法返回此字符串中的索引。
获取按码点偏移的示例
以下示例演示了 Java String offsetByCodePoints() 方法的用法。这里我们创建一个值为 'welcome to tutorialspoint' 的字符串。然后,我们尝试打印给定字符串中的索引。
package com.tutorialspoint;
public class StringDemo {
public static void main(String[] args) {
String str = "welcome to tutorialspoint";
System.out.println("string = " + str);
// returns the index within this String
int retval = str.offsetByCodePoints(2, 4);
// prints the index
System.out.println("index = " + retval);
}
}
输出
让我们编译并运行上面的程序,这将产生以下结果:
string = welcome to tutorialspoint index = 6
使用给定索引获取按码点偏移的示例
如果我们将索引值作为零传递给此方法,它将从开头返回字符串。
在下面的示例中,通过提供索引 0 来计算给定字符串序列 'Tutorials Point is a reputed firm!' 的长度:
package com.tutorialspoint;
public class StringDemo {
public static void main(String[] args) {
// Initializing a CharSequence object.
CharSequence c = "Tutorials Point is a reputed firm!";
System.out.println("The given string is: " + c);
// Initializing the index and codePointOffset
int Index = 0;
int codePointOffset = c.length();
// Getting the index within the given character sequence.
int res = Character.offsetByCodePoints(c, Index, codePointOffset);
System.out.println("The resultant length of the string is: " + res);
}
}
输出
让我们编译并运行上面的程序,输出将显示如下:
The given string is: Tutorials Point is a reputed firm! The resultant length of the string is: 34
检查获取按码点偏移时出现的异常示例
如果索引为负数或大于给定序列的长度,则 offsetByCodePoints() 方法将抛出异常,如下例所示:
public class StringDemo {
public static void main(String[] args) {
// initializing the string buffer object
StringBuffer x = new StringBuffer("Coding");
System.out.println("The string is: " + x);
// getting the offsetByCodePoints on the index -6 and an offset of 8
int index = x.offsetByCodePoints(-6, 8);
System.out.println("index of the offset -6, 8 is: " + index);
}
}
异常
运行上面的程序后,将获得如下输出:
The string is: Coding
Exception in thread "main" java.lang.IndexOutOfBoundsException
at java.base/java.lang.AbstractStringBuilder.offsetByCodePoints(AbstractStringBuilder.java:461)
at java.base/java.lang.StringBuffer.offsetByCodePoints(StringBuffer.java:279)
at StringDemo.main(StringDemo.java:7)
检查码点偏移量是正数还是负数的示例
以下示例显示,如果 codePointOffset 为正或负,并且子序列中的索引小于 codePointOffset 码点,则 offsetByCodePoints() 方法将抛出异常:
public class StringDemo {
public static void main(String[] args) {
// initializing the string buffer object
StringBuffer x = new StringBuffer("Coding");
System.out.println("The string is: " + x);
// getting the offsetByCodePoints on the index -6 and an offset of 8
int index = x.offsetByCodePoints(2, 5);
System.out.println("index of the offset 2, 5 is: " + index);
}
}
异常
上面程序的输出如下:
The string is: Coding
Exception in thread "main" java.lang.IndexOutOfBoundsException
at java.base/java.lang.Character.offsetByCodePoints(Character.java:9342)
at java.base/java.lang.AbstractStringBuilder.offsetByCodePoints(AbstractStringBuilder.java:463)
at java.base/java.lang.StringBuffer.offsetByCodePoints(StringBuffer.java:279)
at StringDemo.main(StringDemo.java:7)
java_lang_string.htm
广告