(1)首先将java传递过来的字符串转化成c的char类型的数组,代码如下

char*   Jstring2CStr(JNIEnv*   env,   jstring   jstr)

{

char*   rtn   =   NULL;

jclass   clsstring   =   (*env)->FindClass(env,"java/lang/String");

jstring   strencode   =   (*env)->NewStringUTF(env,"GB2312");

jmethodID   mid   =   (*env)->GetMethodID(env,clsstring,   "getBytes",   "(Ljava/lang/String;)[B");

jbyteArray   barr=   (jbyteArray)(*env)->CallObjectMethod(env,jstr,mid,strencode); // String .getByte("GB2312");

jsize   alen   =   (*env)->GetArrayLength(env,barr);

jbyte*   ba   =   (*env)->GetByteArrayElements(env,barr,JNI_FALSE);

if(alen   >   0)

{

rtn   =   (char*)malloc(alen+1);         //"\0"

memcpy(rtn,ba,alen);

rtn[alen]=0;

}

(*env)->ReleaseByteArrayElements(env,barr,ba,0);  //

return rtn;

}

(2)在c语言中进行字符串拼接,返回给java,代码如下

char * ext = "hello from c";

char * revert = Jstring2CStr(env,str);

strcat(revert,ext);

return (*env)->NewStringUTF(env,revert);

c 传string 给java_JNI基础 将字符串传递给c,在c中拼接后返回给java相关推荐

  1. Java基础篇——字符串处理(String,StringBuffer,StringBuild)

    提前说明本次的文章很长但是很有用,有耐心看完的必定不是凡人,必定会有很大的收获.本人在总结的过程中也收获了很多的知识,希望我们可以一起学习.写下这篇文章完全是抱着可以帮助到他人的态度. 虽然要写出很高 ...

  2. Java基础之字符串String:

    String ----------------------------------------------------------------------------------------- 一.S ...

  3. java字符串拼接_这样写Java,同事直呼666

    作者:涛姐涛哥 来源:cnblogs.com/taojietaoge/p/11575376.html 一.MyBatis 不要写 1=1 当遇到多个查询条件,使用where 1=1 可以很方便的解决我 ...

  4. Lua基础之字符串(string)

    为什么80%的码农都做不了架构师?>>>    1, 计算字符串长度 2,返回字符串s的n个拷贝 3,返回字符串全部字母大写 4,返回字符串全部字母小写 5,返回一个类似printf ...

  5. 【Java 基础】字符串(String、StringBuilder),日期(Date、SimpleDateFormat、Calendar)

    字符串.日期 字符串(String) 字符串常量池(String Constant Pool) 字符串的初始化 intern 方法 字符串的常用方法(截取) 可变字符串(StringBuilder) ...

  6. java string 比较前几个字符_Java基础之字符串详细比较

    String类包括了几个用于比较字符串或字符串内子字符串的方法.下面分别对它们进行介绍. equals( )和 equalsIgnoreCase( ) 使用equals( )方法比较两个字符串是否相等 ...

  7. SDS(Simple Dynamic String)一个简易动态字符串库

    SDS(Simple Dynamic Strings)是一个C语言字符串库,设计中增加了从堆上分配内存的字符串,来扩充有限的libc字符处理的功能,使得: 使用更简便 二进制安全 计算更有效率 而且仍 ...

  8. InfiniBand的版本演进、基础观念、传量传速

    InfiniBand标准 随着计算能力向数据中心的集中,消除性能瓶颈和改进系统管理变得比以往更加至关重要.I/O子系统中是造成很多这类问题的根源.InfiniBand 是一种被很多人认为可以消除由今天 ...

  9. 基础练习 字符串对比

    基础练习 字符串对比 时间限制:1.0s 内存限制:512.0MB 提交此题 锦囊1 锦囊2 问题描述 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况 ...

最新文章

  1. 03-vue-router
  2. 案例|数据中心UPS电源系统割接实施方案
  3. 电脑维修:电脑维修必备工具整理
  4. FireMonkey 保存图片到JPG的方法 BMP转JPG
  5. Linux(debian7)操作基础(十四)之文本搜索命令grep使用方法
  6. Android轮播图
  7. python代码雨_pygame实现烟雨蒙蒙下彩虹雨
  8. 51单片机如何跳出wile循环_基于proteus的51单片机开发实例(1)
  9. android屏幕内容实时传输,在设备之间无缝传输内容
  10. 如何使用WPS更换证件照底色
  11. 天津等保测评机构项目测评收费价格标准参考
  12. Java-基础篇-03-【选择语句-循环语句-随机数】
  13. A Multi-task Learning Framework for Opinion Triplet Extraction (EMNLP 2020)阅读记录
  14. 判断将输入字母,进行大写转小写,小写转大写
  15. 《麦肯锡方法》第四部分 麦肯锡生存之道 第14-16章-思维导图
  16. 用python动态时钟代码_python实现简易动态时钟
  17. 防止你的WP7手机偷跑流量——系统设置篇
  18. Wifi密码 (10分)
  19. python随身笔记
  20. Linux 中 4 款炫酷的终端应用程序

热门文章

  1. Asp.net2005 使用 NVelocity 实现 MVC
  2. BZOJ 1054: [HAOI2008]移动玩具(bfs)
  3. 面向对象有哪几种常用的设计模式,六大设计原则是什么
  4. angularJS限制 input-text 只能输入数字
  5. ASP.NET AJAX入门系列(7):使用客户端脚本对UpdateProgress编程
  6. c++ 捕获所有异常
  7. Nginx反向代理服务器获取不到端口的问题的解决办法
  8. 【推荐算法】点击率模型特征交叉方向的发展及CAN模型介绍
  9. 【报告分享】2021中国数据中台研究报告.pdf(附下载链接)
  10. 【报告分享】2019互联网大会大佬演讲实录 (附11个演讲文档下载链接)