jstring与char*的转换
一、 jstring ==> char*
jstring jstr;
const char *str = (*env)->GetStringUTFChars(env, prompt, 0);
printf("%s", str);
(*env)->ReleaseStringUTFChars(env, prompt, str); // 注意释放
二、 char* ==> jstring
char* cstr = "hello";
jstring jstr = env->NewStringUTF(cstr);
三、 string ==> jstring
string str = "hello";
jstring jstr = env->NewStringUTF(str.c_str());
四、 jstring ==> string
jstring jstr;
const char *cstr = (*env)->GetStringUTFChars(env, prompt, 0);
string str = cstr; // char* 转 string
printf("%s", str);
(*env)->ReleaseStringUTFChars(env, prompt,cstr); // 注意释放
下面是访问String的一些方法:
◆GetStringUTFChars将jstring转换成为UTF-8格式的char*
◆GetStringChars将jstring转换成为Unicode格式的char*
◆ReleaseStringUTFChars释放指向UTF-8格式的char*的指针
◆ReleaseStringChars释放指向Unicode格式的char*的指针
◆NewStringUTF创建一个UTF-8格式的String对象
◆NewString创建一个Unicode格式的String对象
◆GetStringUTFLengt获取UTF-8格式的char*的长度
◆GetStringLength获取Unicode格式的char*的长度