如何在java中使用oracle instr函数

如何在java中使用oracle instr函数,java,Java,如果我要用Java编写相同的逻辑,我该怎么做? INSTR函数搜索字符串,查找子字符串。[…]如果找到的子字符串等于子字符串,则函数返回一个整数,指示该子字符串的第一个字符的位置。如果没有找到这样的子字符串,则函数返回零 position是一个非零整数,表示Oracle数据库开始搜索的string的字符,即要与子字符串进行比较的第一个子字符串的第一个字符的位置。如果位置为负,则Oracle从字符串的末尾向后计数,然后从结果位置向后搜索 出现次数是一个整数,指示Oracle应搜索字符串中的子字符串

如果我要用Java编写相同的逻辑,我该怎么做?

INSTR
函数搜索
字符串
,查找
子字符串
。[…]如果找到的子字符串等于
子字符串
,则函数返回一个整数,指示该子字符串的第一个字符的位置。如果没有找到这样的子字符串,则函数返回零

position
是一个非零整数,表示Oracle数据库开始搜索的
string
的字符,即要与
子字符串进行比较的第一个子字符串的第一个字符的位置。如果
位置
为负,则Oracle从
字符串
的末尾向后计数,然后从结果位置向后搜索

出现次数
是一个整数,指示Oracle应搜索
字符串中的
子字符串
出现的次数。
出现次数
的值必须为正。如果
出现次数
大于1,则数据库不会在第一次匹配时返回,而是继续比较
字符串
的连续子字符串,如上所述,直到找到匹配编号
出现次数

与之相比:

返回指定子字符串第一次出现的索引,从指定的索引开始,如果没有出现,则返回-1

返回指定子字符串最后一次出现的索引,从指定索引向后搜索,如果没有出现,则返回-1

因此,由于代码不使用第4个参数,而第3个参数是负数,
INSTR
lastIndexOf
基本上是等效的

请记住,Java索引是基于0的,Oracle位置是基于1的

if instr(lv_my_name, '  ', -2) != length(lv_my_name) - 2 or length(lv_my_name) = 2 then
    lv_my_name:= lv_my_name;
else
    lv_my_name:= trim(substr(lv_my_name, 0, length(lv_my_name)-1));
end if;