将字符串依所设定的条件予以分离是很常见的操作,例如指令的分离,文本文件的数据读出等等,以后者而言,当您在文本文件中储存以下的资料时,在读入档案后,将可以使用String的split()来协助每一格的资料分离。
假设在文本文件中有如下的内容,每笔数据中是以tab分开:
cater 64/5/26 093900230
25433343
momor
67/3/26 0939123456 5434233
下面这个程序是一个简单的范例,假设String对象的数据就是档案中的一行文字数据:
public class StringSplit { public static void main(String args[]) { String strOfReaded1 = "cater?64/5/26?0939002302?5433343"; String[] tokens = strOfReaded1.split("\t"); for(String token : tokens) { System.out.print(token + "\t"); } System.out.println(); } }
执行结果:
cater?64/5/26?0939002302?5433343
split()依您所设定的分隔设定,将字符串分为数个子字符串并以String数组传回,再来看一个例子,假设您的文本文件内容每笔数据是以','分隔:
cater,64/5/26,0939002302,5433343
momor,67/3/26,0939123456,5434233
public class StringSplit { public static void main(String args[]) { String strOfReaded2 = "cater,64/5/26,0939002302,5433343"; tokens = strOfReaded2.split(","); for(String token : tokens) { System.out.print(token + "\t"); } System.out.println(); } }
执行结果:
cater?64/5/26?0939002302?5433343
这边简单的介绍了一下split()方法的使用,有人可能会想到 java.util.StringTokenizer,基本上API中明确的表示它已经是遗产类别(Legacy class)了,存在的原因是为了旧程序的兼容性,不建议在您撰写新程序时使用,使用split()来代替会是个好的方案,而且您还可以进一步 使用正则表示式 来进行字符串分离。