stringlibrary.cpp
来自「< Professional Java,JDK 5 Edition>」· C++ 代码 · 共 78 行
CPP
78 行
// StringLibrary.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
#include "..\StringExamples.h"
JNIEXPORT jboolean JNICALL Java_StringExamples_fastSearch
(JNIEnv *env, jobject obj,
jstring stringToSearch, jstring stringToFind)
{
const char *searchStr, *findStr;
jboolean isSearchCopy, isFindCopy;
searchStr = env->GetStringUTFChars(stringToSearch, &isSearchCopy);
findStr = env->GetStringUTFChars(stringToFind, &isFindCopy);
if(searchStr == NULL || findStr == NULL) {
/* No memory to create string */
return(false);
}
/* Don't forget to release the strings before returning */
if(strstr(searchStr, findStr) != NULL) {
env->ReleaseStringUTFChars(stringToSearch, searchStr);
env->ReleaseStringUTFChars(stringToFind, findStr);
return(true);
} else {
env->ReleaseStringUTFChars(stringToSearch, searchStr);
env->ReleaseStringUTFChars(stringToFind, findStr);
return(false);
}
}
JNIEXPORT jstring JNICALL Java_StringExamples_replaceString
(JNIEnv *env, jobject obj,
jstring _srcString, jstring _strToReplace, jstring _replString)
{
const char *searchStr, *findStr, *replStr, *found;
jstring newString = NULL;
int index;
searchStr = env->GetStringUTFChars(_srcString, NULL);
findStr = env->GetStringUTFChars(_strToReplace, NULL);
replStr = env->GetStringUTFChars(_replString, NULL);
found = strstr(searchStr, findStr);
if(found != NULL) {
char *newStringTemp;
index = found - searchStr;
newStringTemp =
new char[strlen(searchStr) + strlen(replStr) + 1];
strcpy(newStringTemp, searchStr);
newStringTemp[index] = 0;
strcat(newStringTemp, replStr);
strcat(newStringTemp, &searchStr[index+strlen(findStr)]);
newString = env->NewStringUTF((const char*)newStringTemp);
}
env->ReleaseStringUTFChars(_srcString, searchStr);
env->ReleaseStringUTFChars(_strToReplace, findStr);
env->ReleaseStringUTFChars(_replString, replStr);
return(newString);
}
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?