HarmonyOS string类型的字符串截取

let orginKey = "网络错误,请重试!" 
let key ='' //取orginKey的前32位字节0-32 Uint8Array 
let iv = '' //取orginKey的从32位后的16个字节 32-48 Uint8Array

​orginKey是一个字符串,需要获取key(获取方式是字符串截取前32位),获取iv(获取方式是截取32-48)

返回可以是Uint8Array,也可以是string。

并提供Uint8Array和string相互转换的demo。​

HarmonyOS
2024-11-04 12:06:55
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

根据字节裁剪字符串的方法如下:

export function substringByByte(str: string, start: number, end?: number): string { 
  const bytes = new Uint8Array([...str].map(c => c.charCodeAt(0))); 
  const slicedBytes = bytes.slice(start, end); 
  return String.fromCharCode(...slicedBytes); 
} 
// xx.ets 
const str = 'hello 世界'; 
console.log('substringByByte info:'+substringByByte(str, 0, 5)); // 输出 "hello" 
 
2:Uint8Array和string相互转换的方法 
stringToUint8Array(str: string): Uint8Array { 
  try { 
    let textEncoder = new util.TextEncoder(); 
    let array: Uint8Array = textEncoder.encodeInto(str); 
    return array 
  } catch (err) { 
    return new Uint8Array() 
  } 
} 
 
uint8ArrayToString(arr: Uint8Array): string { 
  let str = '' 
  if (arr && arr.length > 0) { 
    try { 
      let textDecode = util.TextDecoder.create('utf-8') 
      str = textDecode.decodeWithStream(arr) 
    } catch (err) { 
    } 
  } 
  return str 
}
分享
微博
QQ
微信
回复
2024-11-04 17:02:21
相关问题
emoji字符串无法进行截取
877浏览 • 1回复 待解决
ResourceStr 类型如何转成字符串
261浏览 • 1回复 待解决
检查字符串是否以给定字符串开头
535浏览 • 1回复 待解决
检查字符串是否以给定字符串结尾
422浏览 • 1回复 待解决
HarmonyOS 字符串显示异常
461浏览 • 1回复 待解决
HarmonyOS字符串替换问题
870浏览 • 1回复 待解决
HarmonyOS $r 字符串替换问题
911浏览 • 1回复 待解决
HarmonyOS 替换字符串问题
32浏览 • 1回复 待解决
HarmonyOS 字符串转图片
46浏览 • 1回复 待解决
HarmonyOS 字符串编码问题
43浏览 • 1回复 待解决
HarmonyOS 如何遍历包含emoji字符串
432浏览 • 1回复 待解决