改进java字符串分解的方法

改进java字符串分解的方法

ID:10571188

大小:36.00 KB

页数:3页

时间:2018-07-07

改进java字符串分解的方法_第1页
改进java字符串分解的方法_第2页
改进java字符串分解的方法_第3页
资源描述:

《改进java字符串分解的方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、改进JAVA字符串分解的方法(转)2008年12月19日星期五11:27一、概述  大多数Java程序员都曾经使用过java.util.StringTokenizer类。它是一个很方便的字符串分解器,主要用来根据分隔符把字符串分割成标记(Token),然后按照请求返回各个标记。这个过程称为Tokenization,实际上就是把字符序列转换成应用程序能够理解的多个标记。  虽然StringTokenizer用起来很方便,但它的功能却很有限。这个类只是简单地在输入字符串中查找分隔符,一旦找到了分隔符就分割字符

2、串。它不会检查分隔符是否在子串之中这类条件,当输入字符串中出现两个连续的分隔符时,它也不会返回""(字符串长度为0)形式的标记。  为了突破这些局限,Java2平台提供了BreakIterator类,它是在StringTokenizer之上改进的字符串分解器。由于JDK1.1.x没有提供这个类,为了满足自己的需要,开发者经常花费很多时间从头开始编写分解器。在涉及到数据格式化处理的大型工程中,这类定制的字符串分解器有时随处可见,而且这种情况并不罕见。  本文的目标是帮助你利用现有的StringTokeniz

3、er类,编写一个高级字符串分解器。二、StringTokenizer的局限  你可以用以下三种构造函数中的任意一种创建StringTokenizer分解器:StringTokenizer(StringsInput):以空白字符(“”,“t”,“”)为分隔符分割字符串。StringTokenizer(StringsInput,StringsDelimiter):以sDelimiter为分隔符分割字符串。StringTokenizer(StringsInput,StringsDelimiter,bool

4、eanbReturnTokens):以sDelimiter为分隔符分割字符串,但如果bReturnTokens为true,则分隔符也作为标记返回。  第一个构造函数不检查输入字符串是否包含子串。例如,如果以空白字符为分隔符分割“hello.Today"Iam"goingtomyhometown”,则字符串分解结果是hello.、Today、"I、am、"、going等,而不是hello.、Today、"Iam"、going等。  第二个构造函数不检查两个分隔符连续出现的情况。例如,如果以“,”为分隔符

5、分割“book,author,publication,,,datepublished”这个字符串,则StringTokenizer返回book、author、publication和datepublished这四个标记,而不是book、author、publication、""、""和datepublished这6个标记(其中""表示0长度字符串)。要得到6个标记的答案,你必须把StringTokenizer的bReturnTokens参数设置为true。  允许设置值为true的bReturnToken

6、s参数是一个重要的功能,因为它考虑到了分隔符连续出现的情况。例如,使用第二个构造函数时,如果数据是动态收集得到而且要用来更新数据库中的表,输入字符串中的标记对应着表里面列的值,那么当我们不能确定哪一个列应该设置为""时,我们就无法把输入串中的标记映射到数据库列。假设我们要把记录插入到一个有6个列的表,而输入数据中包含两个连续的分隔符。此时,StringTokenizer的分解结果是5个标记(两个连续的分隔符代表""标记,它将被StringTokenizer忽略),而我们却有6个字段需要设置。同时,我们也不

7、知道连续分隔符在哪里出现,所以也就不知道哪一个列应该设置成""。  当标记本身等同于分隔符(无论是长度还是值)且位于子串之内时,第三个构造函数无效。例如,如果我们要以“,”为分隔符分解字符串“book,author,publication,",",datepublished”(这个字符串包含一个“,”标记,它与分隔符一样),结果是book、author、publication、"、"、datepublished这六个标记,而不是book、author、publication、,(逗号字符)、datep

8、ublished这五个标记。再提醒一下,即使我们把StringTokenizer的bReturnTokens参数设置设置成了true,在这种情况下也没有什么帮助。三、高级字符串分解器  在编写代码之前,你必须搞清楚一个好的分解器有哪些基本要求。因为Java开发者已经习惯于使用StringTokenizer类,所以一个好的分解器应该提供StringTokenizer类提供的所有实用方法,比如hasMoreTokens()、nex

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。