如何在 Java 字串中插入表情符號
一、簡介
在現代應用程式中,將表情符號合併到文字中可以顯著增強使用者體驗。此外,使用表情符號需要了解 Unicode 以及 Java 如何處理文字編碼。
在本教程中,我們將在 Java 字串中插入表情符號,涵蓋 Unicode 中表情符號的各種方法、注意事項和範圍。
2. 理解 Unicode 和表情符號
表情符號使用 Unicode(一種字元編碼標準化系統)來表示。每個表情符號都有一個唯一的 Unicode 碼位。例如,笑臉表情符號 😀 以代碼點U+1F600表示。
字串是 UTF-16 代碼單元的序列,代理對錶示一些表情符號,因為它們的代碼點超出了基本多語言平面 (BMP)。
表情符號屬於 Unicode 碼點的特定範圍:
- 基本拉丁語和 Latin-1 補充:U+0000 至 U+00FF
- 其他符號:U+2600 至 U+26FF
- 標誌:U+2700 至 U+27BF
- 表情符號:U+1F600 至 U+1F64F
- 交通和地圖符號:U+1F680 至 U+1F6FF
- 補充符號和象形文字:U+1F900 至 U+1F9FF
- 符號和象形文字擴展-A:U+1FA70 至 U+1FAFF
這些範圍包括各種類型的表情符號,例如臉、手勢、物體、動物等等。
3. 使用 Unicode 轉義符插入表情符號
將表情符號插入 Java 字串的最簡單方法之一是使用 Unicode 轉義序列。讓我們舉個例子:
String expected = "Java Tutorials and Guides at Baeldung. 😀";
@Test
public void givenUnicodeEscape_whenInsertEmoji_thenCorrectString() {
String textWithEmoji = "Java Tutorials and Guides at Baeldung. \uD83D\uDE00";
assertEquals(expected, textWithEmoji);
}
在此方法中, \uD83D\uDE00表示笑臉表情符號 😀 的 Unicode 轉義序列。 \uD83D和\uDE00分別是高代理和低代理。此外,斷言確保帶有表情符號的字串與預期完全一致。這個方法很簡單,但需要知道表情符號的 Unicode 程式碼點。
4. 使用toChars()方法
Java 提供了Character類別中的toChars()方法,我們可以利用該方法將 Unicode 程式碼點轉換為 char 陣列。讓我們來實作這個方法:
int smileyCodePoint = 0x1F600;
@Test
public void givenCodePoint_whenConvertToEmoji_thenCorrectString() {
String textWithEmoji = "Java Tutorials and Guides at Baeldung. " + new String(Character.toChars(smileyCodePoint));
assertEquals(expected, textWithEmoji);
}
此處, Character.toChars(smileyCodePoint)將代碼點0x1F600轉換為字元數組,然後使用該數組建立包含表情符號的新字串。此方法對於以程式設計方式插入表情符號非常有用。
5.使用StringBuilder
StringBuilder在動態建立字串時很有用。此外, StringBuilder在我們需要透過多個追加操作建構字串的場景中也很有幫助,使流程高效且更易於管理。
以下是我們如何實施這種方法:
@Test
public void givenStringBuilder_whenAppendEmoji_thenCorrectString() {
StringBuilder sb = new StringBuilder("Java Tutorials and Guides at Baeldung. ");
sb.append(Character.toChars(smileyCodePoint));
String textWithEmoji = sb.toString();
assertEquals(expected, textWithEmoji);
}
在這裡,我們首先建立一個StringBuilder對象,並使用字串「 Java Tutorials and Guides at Baeldung. 」。然後,我們使用Character.toChars()方法將表情符號附加到此StringBuilder ,該方法將 Unicode 程式碼點轉換為 char 陣列。最後,我們利用toString()方法將StringBuilder轉換為字串。
六,結論
將表情符號插入 Java 字串可以使用 Unicode 轉義、 Character.toChars()方法和StringBuilder來完成。借助這些技術,我們可以透過無縫合併表情符號來增強 Java 應用程式。
與往常一樣,本文的完整程式碼範例可以在 GitHub 上找到。