北京外贸行业网站建设,珍爱网建设网站的目的,wordpress禁止google,杭州app定制这些准备工作齐了之后#xff0c;我们来从Java中的字符串使用入手来比较一下oracle中对于字符串的处理。java中有如下的一些函数#xff0c;我会依次来做比较。public char charAt(int index)返回字符串中第index个字符#xff1b;oracle中可以使用substr来简单实现#xf…这些准备工作齐了之后我们来从Java中的字符串使用入手来比较一下oracle中对于字符串的处理。java中有如下的一些函数我会依次来做比较。public char charAt(int index)返回字符串中第index个字符oracle中可以使用substr来简单实现需要注意两种方式的下标在java的charAt中是以0开始而在oracle中的substr中则是以1开始计数的。[ora11grac1 ~]$ ksh test1.sh new String(abcd).charAt(2)c[ora11grac1 ~]$ ksh test2.sh substr(abcd,3,1)S-cpublic int length()返回字符串的长度oracle中可以使用length函数使用方式也是很类似的。[ora11grac1 ~]$ ksh test1.sh new String(abcd).length()4[ora11grac1 ~]$ ksh test2.sh length(abcd)LENGTH(ABCD)--------------4public int indexOf(String str)返回字符串中第一次出现str的位置oracle中可以使用instr来模拟实现而且oracle可以更加的灵活。注意下标的不同ksh test1.sh new String(abcdc).indexOf(c)2[ora11grac1 ~]$ ksh test2.sh instr(abcdc,c,1,1)INSTR(ABCDC,C,1,1)----------------------3顺便扩展一下oracle中如果要得到某个字符串第几次出现的下标相对就更直接了比如字符串“abcdc中第二次出现字符c的下标[ora11grac1 ~]$ ksh test2.sh instr(abcdc,c,1,2)INSTR(ABCDC,C,1,2)----------------------5public int indexOf(String str,int fromIndex)返回字符串从fromIndex开始第一次出现str的位置oracle中还是使用Instr而且使用方法和上例类似。我们对字符串abcd从下标为1即字符b所对应的下标开始。[ora11grac1 ~]$ ksh test1.sh new String(abcdc).indexOf(c,1)2[ora11grac1 ~]$ ksh test2.sh instr(abcdc,c,2,1)INSTR(ABCDC,C,2,1)----------------------3public boolean equalsIgnoreCase(String another)比较字符串与another是否一样(忽略大小写)oracle中实现方式略有不同不过可以直接转换为大写或者小写即可。[ora11grac1 ~]$ ksh test1.sh new String(abcd).equalsIgnoreCase(abcD)trueSQL select 1 from dual where upper(abcD)ABCD;1----------1public String replace(char oldchar,char newChar)在字符串中用newChar字符替换oldChar字符oracle中的使用也有replace函数用法也是一致的。[ora11grac1 ~]$ ksh test1.sh new String(abcd).replace(c,g)abgd[ora11grac1 ~]$ ksh test2.sh replace(abcd,c,g)REPL----abgdpublic boolean startsWith(String prefix)判断字符串是否以prefix字符串开头public boolean endsWith(String suffix)判断一个字符串是否以suffix字符串结尾oracle中的实现可以通过匹配符%来实现也可以使用正则表达式。[ora11grac1 ~]$ ksh test1.sh new String(abcd).startsWith(a)true[ora11grac1 ~]$ ksh test1.sh new String(abcd).endsWith(d)trueSQL select 1 from dual where abcd like a%;1----------1SQL select 1 from dual where abcd like %d;1----------1public String toUpperCase()返回一个字符串为该字符串的大写形式public String toLowerCase()返回一个字符串为该字符串的小写形式oracle中有upper()和lower()方法用法效果是一致的。[ora11grac1 ~]$ ksh test1.sh new String(abcd).toUpperCase()ABCD[ora11grac1 ~]$ ksh test1.sh new String(ABcd).toLowerCase()abcd[ora11grac1 ~]$ ksh test2.sh upper(abcd)UPPE----ABCD[ora11grac1 ~]$ ksh test2.sh lower(ABcd)LOWE----abcdpublic String substring(int beginIndex)返回该字符串从beginIndex开始到结尾的子字符串public String substring(int beginIndex,int endIndex)返回该字符串从beginIndex开始到endsIndex结尾的子字符串oracle中也有substring相比来说功能要更丰富注意在java中是substring,而在oracle是substr[ora11grac1 ~]$ ksh test1.sh new String(ABcd).substring(1)Bcd[ora11grac1 ~]$ ksh test2.sh substr(ABcd,1)SUBS----ABcd[ora11grac1 ~]$ ksh test1.sh new String(ABcd).substring(1,2)B[ora11grac1 ~]$ ksh test1.sh new String(ABcd).substring(1,3) --注意这种用法的下标当下标为(1,3)时才会输出下标为1和2的字符。Bc[ora11grac1 ~]$ ksh test2.sh substr(ABcd,1,2) --注意oracle中的小标是从1开始最后的参数2代表需要截取的字符串长度为2所以截取了ABSU--ABpublic String trim()返回该字符串去掉开头和结尾空格后的字符串oracle中有trim函数而且还有ltrim,rtrim等支持的功能也要丰富一些。[ora11grac1 ~]$ ksh test1.sh new String(abcd ).trim()abcd[ora11grac1 ~]$ ksh test2.sh trim(abcd )TRIM----abcdltrim就是截取左边的空白字符rtrim就是截取右边的空白字符。[ora11grac1 ~]$ ksh test2.sh ltrim( abcd)LTRI----abcdpublic String[] split(String regex)将一个字符串按照指定的分隔符分隔返回分隔后的字符串数组oracle中目前没有发现有现成的方法实现只能自己DIY通过pl/sql来实现内部也是在使用substr来递归解析。下面的例子会将字符串”abcd abcd以空格分割最后返回的是一个数组我们来看看里面的内容。