【问题标题】:How to get the last character of a jobject in jni?如何在 jni 中获取作业的最后一个字符?
【发布时间】:2020-03-13 16:55:00
【问题描述】:

我有一个作业(ts),我想获取它的最后一个字符,然后想比较它是等于 0 还是 s(它是数字和字符的混合体)。最简单的方法是什么?

jmethodID methodId_ts = env->GetMethodID(s_clazz,"toCharsString","()Ljava/lang/String;");
jobject ts = env->CallObjectMethod(signature,methodId_ts);

【问题讨论】:

  • 使用GetStringUTFCharsGetStringUTFRegion。有关这些功能的更多详细信息,请参阅the JNI documentation

标签: android-ndk java-native-interface jnienv


【解决方案1】:

只需使用ts.charAt(ts.length()-1):

jclass cls_String = env->GetObjectClass();
jmethodID mid_String_length = env->GetMethodID(cls_String, "length", "()I");
jmethodID mid_String_charAt = env->GetMethodID(cls_String, "charAt", "()C");

jint len = env->CallIntMethod(ts, mid_String_length);
jchar c  = env->CallCharMethod(ts, mid_String_charAt, len-1);

【讨论】:

    猜你喜欢
    • 2011-02-10
    • 2013-07-06
    • 2011-07-07
    • 2011-08-17
    • 2018-07-16
    • 1970-01-01
    • 2021-09-18
    相关资源
    最近更新 更多