1. 苏葳的备忘录首页
  2. 编程

Java 1.2.2中无split函数及StringTokenizer使用

java 字符串 都知道SQL中没有类似Java或C#中string.split的字符串分隔函数,用SQL拆串实在太麻烦。于是试图在Sybase 12.5中扩展一个Java函数,给Java的split函数做一个包装。虽然SQL中没有类似数组的数据结构可供接收split的结果,但可以增加个指定位置的参数,返回指定位置的子串,相比之前也是方便很多了。

public static String StrSplit(String oristr, String deli, int pos) {
  /*  用split函数可轻松实现功能
   * if (pos<=0)
       return "";
  String [] outstr=oristr.split(deli);
   if  (outstr.length<pos)
     return "";
    else
      return outstr[pos-1];
   */

悲剧出现了。Sybase 12.5只支持Java 1.2.2以下版本的Java包安装。而上述split函数在Java 1.2.2版本中不存在,1.4版才加入。无奈,只得用Java 1.0版就有的StringTokenizer来做:

  String outstr = "";
  int i = 1;
  if (pos <= 0)
   return "";
  StringTokenizer st = new StringTokenizer(oristr, deli, false);
  while (st.hasMoreTokens()) {
   outstr = st.nextToken();
   if (i == pos)
    return (outstr);
   i++;
  }
  return "";
 }

 

 

StringTokenizer与String.split的结果有所不同,split返回串更符合一般理解。

如str=”aaabbcccdeee”,deli=”b”

split返回aaa,””,cccdeee,而StringTokenizer只会返回aaa,cccdeee两个串,当然其构造函数有第三个参数指示是否将deli本身返回,但用处不大。

原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/301.html

发表评论

邮箱地址不会被公开。 必填项已用*标注