在java中处理带分隔符数据的方式是,提供了一个系统类java.util.StringTokenizer来进行处理。例如 StringTokenizer(String content,String delim)将在字符串content的基础上创建一个StringTokenizer对象,并用delim来作为新的分隔符,如果省略delim,则以系统缺省的分隔符来作为原来各分隔符的替代。
实际上还有第三个参数,true/false,如果为true则返回值还包含分隔符本身。可以加以省略。
StringTokenizer的构造函数:
StringTokenizer(String str)
StringTokenizer(String str,String delimiters)
StringTokenizer(String str,String delimiters,boolean delimiAsToken)
关于Token的另一些方法,如public String nextToken(), public bolean hasMoreTokens(), public int countTokens()等,请参考有关java书籍手册。
一个例子:
实现把一个特殊结构的字符串转变成字符串数组
public class CCStrTools
{
public static String[] str2Array(String str, String separator)
{
if (str == null || separator == null || (str.trim()).length() == 0)
return null;
if (str.substring(str.length() - separator.length(),
str.length()).equals(separator))
str = str.substring(0, str.length() - separator.length());
//if(str.charAt(str.length()-1)==',')
//str=str.substring(0,str.length()-1);
StringTokenizer token = new StringTokenizer(str, separator);
String[] array = new String[token.countTokens()];
int i = 0;
while (token.hasMoreTokens())
{
array[i] = token.nextToken(separator);
i++;
}
return array;
}
public static void main(String []args)
{
String s3 ="3@4@5@6@7@";
String w1[] =CCStrTools.str2Array(s3,"@");
for(int i=0;i<w1.length;i++)
{
System.out.println(w1[i]);
}
// System.out.println(w1.length);
}
}
posted on 2005-03-25 11:29
小力力力 阅读(926)
评论(1) 编辑 收藏 所属分类:
JAVA