首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JNI中添加多个jstring的最简单方法是什么?

在JNI中添加多个jstring的最简单方法是什么?
EN

Stack Overflow用户
提问于 2020-04-22 09:03:45
回答 1查看 367关注 0票数 0

我正在开发一个android应用程序,在这个应用程序中,我需要追加5-6个jstring,并希望在本地代码中返回一个jstring。弦乐就像..。

代码语言:javascript
复制
jstring1= "Hello, "
jstring2= "How"
jstring3= "are"
jstring4= "you"
jstring5= "today?"

我想返回一个jstring,“你好,你今天好吗?”我只是想知道最简单的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-22 09:55:56

首先,您要制作一个StringBuilder

代码语言:javascript
复制
jclass cls_StringBuilder = env->FindClass("java/lang/StringBuilder");
jmethodID ctr_StringBuilder = env->GetMethodID(cls_StringBuilder, "<init>", "(I)V");
jobject stringBuilder = env->NewObject(cls_StringBuilder, ctr_StringBuilder, 100);

然后逐个字符串追加:

代码语言:javascript
复制
jmethodID mid_StringBuilder_append = env->GetMethodID(cls_StringBuilder, "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;");
for (auto str: { jstring1, jstring2, jstring3, jstring4, jstring5 }) {
  env->CallObjectMethod(stringBuilder, mid_StringBuilder_append, str);
}

最后获取StringBuilder的内容:

代码语言:javascript
复制
jmethodID mid_StringBuilder_toString = env->GetMethodID(cls_StringBuilder, "toString", "()Ljava/lang/String;");
jstring final = (jstring) env->CallObjectMethod(stringBuilder, mid_StringBuilder_toString);
return final;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61361216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档