02-1 jstring与char*,string的转换

    xiaoxiao2024-11-17  12

    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*的长度

     

     

    最新回复(0)