android典型程式碼系列(十八)------把java中的jstring的型別轉化成一個c語言中的char字串
15把java中的jstring的型別轉化成一個c語言中的char字串 :
/**
* 返回值 char* 這個代表char陣列的首地址
* Jstring2CStr 把java中的jstring的型別轉化成一個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;
}
相關文章
- C語言中寫一個程式將浮點型轉化成字元型輸出C語言字元
- JavaJNI使用之將JAVA的String[]字串陣列轉化成C語言的char**Java字串陣列C語言
- C語言中資料型別的自動型別轉換C語言資料型別
- C語言中的資料型別C語言資料型別
- android典型程式碼系列(二十八)------通話記錄的操作Android
- 【C】 30_C語言中的字串C語言字串
- c語言中的資料型別的自動轉換原則C語言資料型別
- c語言中陣列的三種型別C語言陣列型別
- 輸出C語言中 變數的型別C語言變數型別
- dart系列之:dart語言中的內建型別Dart型別
- c語言中資料型別的自動轉換原則C語言資料型別
- C語言中&&,||,&,| 的區別C語言
- C#中JSON字串和Dictionary字典型別的相互轉換C#JSON字串型別
- C語言中字串與整數的相互轉換C語言字串
- C語言中資料型別轉換函式C語言資料型別函式
- C# - char型別的一些介紹C#型別
- 把一個任意型別的值轉換為布林型別型別
- c語言中預設引數的兩種型別C語言型別
- 對C語言中無符號型別的建議C語言符號型別
- C語言中,四則運算導致資料型別的轉換C語言資料型別
- char型別的數值轉換型別
- Python 語言中的 “鴨子型別”Python型別
- delphi中的字串處理,以及幾個字串型別的說明。 (轉)字串型別
- 解析C語言中的sizeof (轉)C語言
- CAPL指令碼中常用到的資料型別轉換——數字型別(int/double)和字串型別(char array)指令碼資料型別字串
- C語言程式的內在分配:堆和棧以及char a[]和char*的區別C語言
- C語言中幾種報錯型別的解決方案C語言型別
- go 語言中預設的型別識別Go型別
- C++中string、char *、char[]、const char*的轉換C++
- 【C++】CONST CHAR*型別的值不能用於初始化CHAR*型別的實體C++型別
- C++程式語言中的四個除錯技巧C++除錯
- c++語言中類的私有型別或保護型別成員變數C++型別變數
- android典型程式碼系列(二十五)------popupwindow的使用Android
- Java學習--Java 中基本型別和字串之間的轉換Java型別字串
- C語言中的strlen與sizeof的區別C語言
- 把jason字串轉化為標註的data(responseObject)型別字串Object型別
- PL/SQL中char型別的暗門SQL型別
- C語言中的複雜資料型別,你掌握了哪些?C語言資料型別