- 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
廣告