JNI C创建Java字符串数组

创建Java字符串数组



注:jni中没有与String[]对应的数据类型,所以需要创建对象数组,循环添加jstring对象

#include <Sample3.h>
      #include <string.h>
      #include <stdlib.h>
      #define ARRAY_LENGTH 5   

     JNIEXPORT jobjectArray JNICALL Java_Sample3_stringMethod
(JNIEnv *env, jobject obj, jstring string)
       {
         jclass objClass = (*env)->FindClass(env, "java/lang/String");
        jobjectArray texts= (*env)->NewObjectArray(env,
(jsize)ARRAY_LENGTH, objClass, 0);
         jstring jstr;
          char* sa[] = { "Hello,", "world!", "JNI", "很", "好玩" };
         int i=0;
         for(;i<ARRAY_LENGTH;i++)
          {
            jstr = (*env)->NewStringUTF( env, sa[i] );
            (*env)->SetObjectArrayElement(env, texts, i, jstr);//必须放入jstring
         }
        return texts;
   }

原文地址:https://www.cnblogs.com/Free-Thinker/p/10602706.html

时间: 2024-11-19 10:26:19

JNI C创建Java字符串数组的相关文章

创建一个字符串数组,总共5个元素,每个元素最多保存30个字符,写一个函数排序整个数组。

第一种:(类似冒泡排序) #include<stdio.h> #include<stdlib.h> #include<string.h> int main() { char a[5][30]={"aaa","bbb","ccc","adb","degf"}; int i=0; int j=0; char b[30]; for(i=0;i<4;i++) { for(j

C 入门 第五节 多维数组 字符串数组

#pragma mark  ----------二维数组----------int main(int argc, const char * argv[]) {/*    1 . 二维数组的本质:将数组作为数组元素的数组,称为数组的数组    2 . 类如:管理一个班4个学生的年龄,将一维数组作为数组元素,存储到另一个数组中    int age[4] = {12,13,14,15};    12,13,14,15    21,22,23,24    31,32,33,34    3 . 为了形象

二维数组 字符串数组

字符串数组元素访问:? 1.访问某个字符串:数组名[第?一维下标]? 2.访问某个字符 :数组名[第?一维下标][第?二维下标] 3.多维数组占?用内存 = 元素个数 乘以 单个元素所占空间 创建?一个字符串数组(内容是你周围?一圈?人的姓名),对字符串 (英?文)从?小到?大排序. char name[3][20] = {"chexianpeng" , "liuhuaixuan" , "liyunxiao"}; for (int j = 0;

写一个函数排序整个字符串数组

创建一个字符串数组,总共5个元素,每个元素最多保存30个字符, 写一个函数排序整个数组 #include<stdio.h> #include<string.h> #include<stdlib.h> int main() { int i,j; char tmp[30]; char arr[5][30]={"bbbb","aaaa","dddd","wwww","eeee"

字符串数组排序问题

创建一个字符串数组,总共5个元素,每个元素最多保存30个字符 ,写一个函数排序整个数组. //方法一: #include <stdio.h> #include <string.h> void sort(char *arr[], int n) {  char *tmp;  int i, j, k;  for (i = 0; i < n - 1; i++)                  //选择排序  {   k = i;   for (j = i + 1; j < n

IntelliJ IDEA平台下JNI编程(五)—本地C代码创建Java对象及引用

本文学习如何在C代码中创建Java对象和对象数组,前面我们学习了C代码中访问Java对象的属性和方法,其实在创建对象时本质上也就是调用构造函数,因此本文知识学习起来也很轻松.有了前面学习数组创建的方法后,C代码创建对象数组同样很容易,下面开始学习吧~ 1. C代码创建Java对象 创建Java对象本质就是调用构造函数,这与上一篇文章中提到的调用方法使用方法一致.下面直接贴代码: package com.huachao.java; /** * Created by HuaChao on 2017/

JNI官方文档翻译3-基本数据类型 字符串 数组

在使用JNI的时候,你问的最多的问题莫过于 Java的数据类型和C/C++的数据类型怎么一对一映射.在我们的HelloWord例子当中,我们并没有传入任何参数给我们的java层print方法,native方法也并没有返回任何数据而是void,本地方法只是简单的打印一个字符串,然后就返回了.实际开发中我们都需要传入参数,返回参数,本章就会讨论如何从java层向底层传数据,以及如何从底层向java层返回数据.我们从基本数据类型 字符串 数组开始, 下一章再介绍如何传任意类型的数据,以及如何访问他们的

Java求字符串数组交集 并集 差集 去重复并集

//系统方法 package com; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Test { public static void main(String[] args) { List list1 =new ArrayList(); list1.add("1111"); list1.add("2222"); list1.add

利用char, str2mat, strvcat创建多行字符串数组

用专门函数char , str2mat , strvcat创建多行字符串数组示例. 1.char('str1', 'str2',...) Convert to character array (string)转换成字符串数组,空字符串是有效的. 示例:S1=char('This string array','', 'has two rows.')   S1 = This string array has two rows. 2.str2mat  (新版本中被char替代) Form blank-