HarmonyOS 鸿蒙Next 如何获取字符串的最后一个Unicode字符

发布于 1周前 作者 bupafengyu 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 如何获取字符串的最后一个Unicode字符

示例字符串,包括普通字符和多字节 Unicode 字符 let testString: string = ‘\ud83d\udcda\ud83c\udf49’;

将字符串转换为字符数组 const charArray: string[] = Array.from(testString);

获取数组的最后一个字符 const lastChar: string | undefined = charArray.pop(); console.log(lastChar); 上述代码获取的lastChar是乱码,如何才能获取到多字节 Unicode 字符

2 回复

可以参考下面的Demo

[@Entry](/user/Entry)
[@Component](/user/Component)
struct Index {
  build() {
    RelativeContainer() {
      Button('获取最后一个unicode').onClick(()=>{
        const str:string = '\ud83d\udcda书上说,夏至是——哈哈\ud83c\udf49';
        const lastCharCode = str.charCodeAt(str.length - 1);
        const secondLastCharCode = str.charCodeAt(str.length - 2);
        const unicode = String.fromCharCode(secondLastCharCode, lastCharCode);
        console.log(unicode);
      })
    }
    .height('100%')
    .width('100%')
  }
}<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

\ud83c\udf49 这俩个合起来可以

在HarmonyOS(鸿蒙)系统中,获取字符串的最后一个Unicode字符可以通过以下步骤实现。假设你使用的是Java或Kotlin语言(鸿蒙应用开发常用的语言):

  1. 获取字符串长度:使用length()方法获取字符串的长度。
  2. 获取最后一个字符:通过索引访问字符串的最后一个字符。在Java和Kotlin中,字符串的索引是从0开始的,所以最后一个字符的索引是length() - 1

示例代码(Java/Kotlin):

String str = "你的字符串";
if (!str.isEmpty()) {
    char lastChar = str.charAt(str.length() - 1);
    // lastChar 现在包含字符串的最后一个Unicode字符
}

在Kotlin中,语法非常相似,只是类型声明可以省略(Kotlin具有类型推断功能)。

确保字符串不为空或长度为0,以避免StringIndexOutOfBoundsException异常。

如果字符串包含的是UTF-16编码的字符(例如,包含代理对),上述方法获取的可能是代理对的一部分。在这种情况下,你可能需要更复杂的逻辑来处理完整的Unicode字符。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部