如何在Smali语言中实现两个字符串的拼接操作?
Smali 实现字符串拼接示例
如果你需要在Smali代码里完成两个字符串的拼接,最常用的方式就是借助StringBuilder来实现,下面是一个完整的示例:
new-instance v9, Ljava/lang/StringBuilder; invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V invoke-virtual {v9, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v9, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v9
代码逐行解释:
new-instance v9, Ljava/lang/StringBuilder;:创建一个StringBuilder实例,将其引用存储到寄存器v9中invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V:调用StringBuilder的无参构造方法,完成实例初始化invoke-virtual {v9, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;:调用append方法,把寄存器v5指向的字符串添加到StringBuilder里invoke-virtual {v9, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;:再次调用append方法,拼接寄存器v2指向的字符串invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;:调用toString方法,将StringBuilder中的内容转换为最终的字符串对象move-result-object v9:把toString方法返回的拼接完成的字符串,重新存储到寄存器v9中
内容的提问来源于stack exchange,提问作者Mhd Zaher Al Katsha
相关产品推荐
相关产品推荐

