JNI中字符串之间的转换
来源:互联网 发布:梦幻西游数据号怎么弄 编辑:程序博客网 时间:2024/06/07 01:57
static jstring stoJstring(JNIEnv* env, const char* pat) { jclass strClass = (*env)->FindClass(env, "Ljava/lang/String;"); jmethodID ctorID = (*env)->GetMethodID(env, strClass, "<init>", "([BLjava/lang/String;)V"); jbyteArray bytes = (*env)->NewByteArray(env, strlen(pat)); (*env)->SetByteArrayRegion(env, bytes, 0, strlen(pat), (jbyte*)pat); jstring encoding = (*env)->NewStringUTF(env, "utf-8"); return (jstring)(*env)->NewObject(env, strClass, ctorID, bytes, encoding); }> static char* jstringTostring(JNIEnv* env, jstring jstr) { char* rtn = NULL; jclass clsstring = (*env)->FindClass(env, "java/lang/String"); jstring strencode = (*env)->NewStringUTF(env, "utf-8"); jmethodID mid = (*env)->GetMethodID(env, clsstring, "getBytes", "(Ljava/lang/String;)[B"); jbyteArray barr= (jbyteArray)(*env)->CallObjectMethod(env, jstr, mid, strencode); jsize alen = (*env)->GetArrayLength(env, barr); jbyte* ba = (*env)->GetByteArrayElements(env, barr, JNI_FALSE); if (alen > 0) { rtn = (char*)malloc(alen + 1); memcpy(rtn, ba, alen); rtn[alen] = 0; } (*env)->ReleaseByteArrayElements(env, barr, ba, 0); return rtn; }
0 0
- JNI中字符串之间的转换
- jni和java之间字符串的转换
- JNI中jstring 和char* 之间的转换方法
- JNI中String和char之间的相互转换
- JNI中jstring 和char* 之间的转换方法
- JNI中jstring 和char* 之间的转换方法
- VC++.NET中字符串之间的转换
- VC++.NET中字符串之间的转换
- VC++.NET中字符串之间的转换
- VC++.NET中字符串之间的转换
- VC++.NET中字符串之间的转换
- VC++.NET中字符串之间的转换
- 字符串之间的转换
- 字符串之间的转换
- 字符串之间的转换
- 字符串之间的转换
- 字符串之间的转换
- 字符串之间的转换
- shell--表达式和运算符
- PAT(乙级) 1002.写出这个数
- 3836: [Poi2014]Tourism
- linux生产者消费者(2)
- ProgressBar线程更新问题
- JNI中字符串之间的转换
- Android差分升级原理和实现方式
- shell--输入输出
- Android使用UiAutomator进行测试
- 牛顿迭代法总结
- UiAutomatorHelper
- 菜鸟的安卓之路。2016.06.21
- Linux下网卡eth1如何修改为eth0
- Slidingmenu 提供属性修改