Java String codePoint() 方法及示例
Java字符串由一组字符组成,每个字符都与一个 Unicode 点值(别名 ASCII 值)相关联。因此,要获取字符串中字符的 Unicode 点值,我们将使用codepoint()方法。
所以为了更进一步,我们需要知道每个字符的相关 Unicode 值是什么。 Letters Unicode Values Capital/Upper Case Letters (A-Z) A-65, B-66, C-67,……., Y-89, Z-90Small/Lower Case Letters(a-z) a-97, b-98, c-99,……., y-121, z-122
不仅字母而且符号、空白等都与一些 Unicode 点值相关联,例如空白是 32。
有 4 种类型的代码点方法可用。他们是-
- 代码点
- 代码点之前
- 码点计数
- offsetByCodePoints
让我们与语法和示例一起详细讨论它。
1.codePointAt()方法
此方法接受一个整数,该整数指定字符串中的索引值,并返回一个整数,该整数表示字符串中指定索引处的字符的 Unicode 点值。如果索引无效,则抛出 IndexOutOfBoundsException。
句法
stringVariable.codePointAt(index_value)
示例 1:
Java
// Java program to demonstrate
// the String codePointAt() Method
import java.io.*;
class GFG {
public static void main(String[] args)
{
// initialization and declaration
String str = "Geeks for Geeks";
// finding codepoint value for character at index 1
int e_codepoint = str.codePointAt(1);
System.out.println(e_codepoint);
}
}
Java
// Java program to demonstrate
// the String codePointAt() Method
import java.io.*;
class GFG {
public static void main(String[] args)
{
// initialization and declaration
String str = "Geeks for Geeks";
// finding codepoint value for invalid index
int e_codepoint = str.codePointAt(20);
System.out.println(e_codepoint);
}
}
Java
// Java program to demonstrate
// the String codePointBefore() Method
import java.io.*;
class GFG {
public static void main(String[] args)
{
// initialization and declaration
String str = "Geeks for Geeks";
// finding codepoint value for character at index 0
// index-1 (before)
int G_codepoint = str.codePointBefore(1);
System.out.println(G_codepoint);
}
}
Java
// Java program to demonstrate
// the String codePointCount() Method
import java.io.*;
class GFG {
public static void main(String[] args)
{
// initialization and declaration
String str = "Geeks for Geeks";
// finding no of codepoint values
// between specified indexes
int codepoints_count = str.codePointCount(1, 5);
System.out.println(codepoints_count);
}
}
Java
// Java program to demonstrate
// the String offsetCodePoints() Method
import java.io.*;
class GFG {
public static void main(String[] args)
{
// initialization and declaration
String str = "Geeks for Geeks";
// finding index in a string that is
// offset from specified index
int index_byOffset = str.offsetByCodePoints(1, 5);
System.out.println(index_byOffset);
}
}
101
解释:在索引 1 处我们有一个字母“e”。因此 codePointAt() 方法返回 e 的 unicode 代码点值。
示例 2:
Java
// Java program to demonstrate
// the String codePointAt() Method
import java.io.*;
class GFG {
public static void main(String[] args)
{
// initialization and declaration
String str = "Geeks for Geeks";
// finding codepoint value for invalid index
int e_codepoint = str.codePointAt(20);
System.out.println(e_codepoint);
}
}
输出
说明:这里的字符串大小为 15,但我们将索引值传递为 20,这超出了字符串的大小。它将被视为无效索引并引发错误。
2.codePointBefore()方法
此方法接受一个整数,该整数指定字符串中的索引值,并返回一个整数,该整数表示字符串中指定索引处之前字符的 Unicode 点值。如果索引无效,即如果传递的值小于 1 或大于字符串长度,则抛出 IndexOutOfBoundsException。
句法
stringVariable.codePointBefore(index_value)
代码
Java
// Java program to demonstrate
// the String codePointBefore() Method
import java.io.*;
class GFG {
public static void main(String[] args)
{
// initialization and declaration
String str = "Geeks for Geeks";
// finding codepoint value for character at index 0
// index-1 (before)
int G_codepoint = str.codePointBefore(1);
System.out.println(G_codepoint);
}
}
71
解释:我们传递的索引是 1,但是这里的方法是 codePointBefore,它从指定的索引 G 和它的 Unicode 代码点值 71 中找到前一个字符。
3.codePointCount()方法
此方法接受 2 个参数 start_index 和 end_index 并返回两个指定索引之间存在的 Unicode 代码点数。这里 start_index 是包容性的, end_index 是独占性的。如果任何无效索引作为参数传递,则会发生 IndexOutOfBoundException。
句法
stringVariable.codePointCount(start_index, end_index)
代码
Java
// Java program to demonstrate
// the String codePointCount() Method
import java.io.*;
class GFG {
public static void main(String[] args)
{
// initialization and declaration
String str = "Geeks for Geeks";
// finding no of codepoint values
// between specified indexes
int codepoints_count = str.codePointCount(1, 5);
System.out.println(codepoints_count);
}
}
4
说明:在字符串 str 的 1 到 5 个索引位置之间有 4 个字母 - 'e'、'e'、'k'、's'。所以它返回 4 作为结果。
4. offsetByCodePoints() 方法
此方法接受 2 个参数作为参数,一个是索引值,另一个是 offset_value。 offsetByCodePoints 返回字符串中的索引值,该值与指定索引的偏移量为 offset_value。
句法
stringVariable.offsetByCodePoints(index_value, offset_value)
Java
// Java program to demonstrate
// the String offsetCodePoints() Method
import java.io.*;
class GFG {
public static void main(String[] args)
{
// initialization and declaration
String str = "Geeks for Geeks";
// finding index in a string that is
// offset from specified index
int index_byOffset = str.offsetByCodePoints(1, 5);
System.out.println(index_byOffset);
}
}
6
说明:在本例中,offsetByCodePoints 从指定的 index:1 到 offset_value:5 返回一个索引,即 1+5=6。
这些都是与codePoint主题相关的所有方法。