jstring与c++字符串类型转换函数

jstring str2jstring(JNIEnv* env,const char* pat)
{//定义java String类 strClassjclass strClass = (env)->FindClass("Ljava/lang/String;");//获取String(byte[],String)的构造器,用于将本地byte[]数组转换为一个新StringjmethodID ctorID = (env)->GetMethodID(strClass, "<init>", "([BLjava/lang/String;)V");//建立byte数组jbyteArray bytes = (env)->NewByteArray(strlen(pat));//将char* 转换为byte数组(env)->SetByteArrayRegion(bytes, 0, strlen(pat), (jbyte*)pat);// 设置String, 保存语言类型,用于byte数组转换至String时的参数jstring encoding = (env)->NewStringUTF("GB2312"); //将byte数组转换为java String,并输出return (jstring)(env)->NewObject(strClass, ctorID, bytes, encoding);
}std::string jstring2str(JNIEnv* env, jstring jstr)
{   char*   rtn   =   NULL;   jclass   clsstring   =   env->FindClass("java/lang/String");   jstring   strencode   =   env->NewStringUTF("GB2312");   jmethodID   mid   =   env->GetMethodID(clsstring,   "getBytes",   "(Ljava/lang/String;)[B");   jbyteArray   barr=   (jbyteArray)env->CallObjectMethod(jstr,mid,strencode);   jsize   alen   =   env->GetArrayLength(barr);   jbyte*   ba   =   env->GetByteArrayElements(barr,JNI_FALSE);   if(alen   >   0)   {   rtn   =   (char*)malloc(alen+1);         memcpy(rtn,ba,alen);   rtn[alen]=0;   }   env->ReleaseByteArrayElements(barr,ba,0);   std::string stemp(rtn);free(rtn);return   stemp;
}

  

转载于:https://www.cnblogs.com/lichien/archive/2011/10/11/2206828.html

转:JNI jstring与c++字符串类型转换函数相关推荐

  1. python字符串处理函数总结

    现将相关字符串的函数总结下来如下: 在历史上string类在python中经历了一段轮回的历史.在最开始的时候,python有一个专门的string的module,要使用string的方法要先impo ...

  2. android 字符串函数,Android JNI开发系列(六)字符串操作

    JNI字符串操作 字符串是引用数据类型,不属于基本数据类型 Java 使用unicode编码,C使用UTF-8,所以在操作中 C语言的字符串操作在头文件中 示例代码 public native Str ...

  3. clickhouse 常用函数 算数函数 时间函数 日期函数 字符串函数 比较函数 数据类型函数 逻辑函数 类型转换函数 替换函数 数组函数 随机函数 编码函数 UUID URL IP 函数

    clickhouse 常用函数 算数函数 时间函数 日期函数 字符串函数 比较函数 数据类型函数 逻辑函数 类型转换函数 替换函数 数组函数 随机函数 编码函数 UUID URL IP 函数 算数函数 ...

  4. android jni jstring 转 char*

    今天,简单讲讲Android jni如何将java的Sring转成char*. 这个之前一直不理解,所以我都是android传入byte[]转成char*,有一篇博客专门讲了这个.后来发现用Strin ...

  5. jni和java之间字符串的转换

    jni和java之间字符串的转换方法. C的实现: JNIEXPORT jstring JNICALL Java_Android123_CwjC (JNIEnv *env, jobject obj, ...

  6. 本地方法(JNI)——访问域+字符串参数

    [0]README 1) 本文部分文字描述 转自 core java volume 2 , 旨在理解 本地方法(JNI)--访问域+字符串参数 的基础知识 : 2) for source code, ...

  7. python数字类型转换函数_Python的数据类型转换函数

    玩蛇网这篇文章给大家介绍关于,Python数据类型的转换函数. Python提供了一些可以把某个值从一种数据类型,转换成为另一种数据类型的内置函数和方法.int函数可以将任何可以转换为整型的值转换为整 ...

  8. Sql Server函数全解三数据类型转换函数和文本图像函数

    原文:Sql Server函数全解<三>数据类型转换函数和文本图像函数 一:数据类型转换函数 在同时处理不同数据类型的值时,SQL Server一般会自动进行隐士类型转换.对于数据类型相近 ...

  9. 如何把字符串类型转换成整型?

    为什么80%的码农都做不了架构师?>>>    jquery里的获取函数( 例如,val() ),其返回值都是字符串类型!!! 那么,如何把字符串类型转换成整型? 答:使用parse ...

最新文章

  1. zabbix-agent 启动不起来
  2. JS操作JSON总结
  3. 读淘宝商品描述页源码delphi版
  4. 14.8.4 Moving or Copying InnoDB Tables to Another Machine 移动或者拷贝 InnoDB 表到另外机器...
  5. QT的QListWidget类的使用
  6. 深度学习搞CV?图像数据不足咋办?看这里!
  7. Android Studio 突然出现很多红色波浪线或红色感叹号解决方案
  8. LeetCode 363. 矩形区域不超过 K 的最大数值和(DP+set二分查找)
  9. 随便唠叨下 最近的事情
  10. System Center 2016 Data Protection Manager 部署手册
  11. 引导界面滑动导航 + 大于等于1页时无限轮播 + 各种切换动画轮播效果
  12. java连接mysql表格_java中表格连接数据库
  13. 各位学Python的要小心了!!!
  14. CSDN积分赚取方法
  15. DG导入mysql依赖包_mysql 命令行快速导出数据,导入数据
  16. 微信小程序使用字体图标
  17. A卡福利 : AMD Fluid Motion Video补帧教程,让你的视频从24帧补到60帧(144)
  18. 你未看此花时,此花与汝同归于寂;你来看此花时,则此花颜色一时明白起来。
  19. 亚马逊发布“不可变”量子账本数据库产品
  20. ubuntu 18.04 设置开机启动脚本

热门文章

  1. GIS开源程序收集(转载)
  2. C#正则表达式编程(二):Regex类用法
  3. 我是如何解决asp.net程序在dreamWeaver中布局乱码的问题
  4. docker 查看日志_8个优秀Docker容器监控工具,收藏了
  5. matlab exist()判断目录文件是否存在
  6. GDB下查看内存命令(x命令)
  7. Python 元组(Tuple)操作详解
  8. 批量提交 kafka_Kafka精华问答|kafka的使用场景是什么?
  9. 基类数组存放派生类_永远不要将派生类数组赋值给基类类型指针
  10. CSDN转载博客的方法