询问一个字符串处理的最优方法
有一个字符串类似于:String   str= "hd0$jfsfi$fjjaio%jsfij$jsfsjf%jsjg# " 
 其中$和%为分隔符,#为结束符。 
 我想从该字符串中提取子串如:hd0,jfsfi,jjaio等进行处理。 
 问:怎么拆分处理这个字符串速度最快?
------解决方案--------------------调用 字符串的拆分方法 split 返回一个字符串数组 String[] strSplit = str.split( "$ "); 
 在对数组处理
------解决方案--------------------一楼的方法中存在错误,“$”是正则表达式的专用符号需要转义改为“\\$”。 
 二楼的方法也不好,要分好几次转,这样会产生很多的数组。   
 我的建议代码:   
 String str= "hd0$jfsfi$fjjaio%jsfij$jsfsjf%jsjg# "; 
 String[] s = str.split( "\\$|%|#$ "); 
 for(String t : s) { 
   System.out.println(t); 
 }   
------解决方案--------------------import java.util.regex.Matcher; 
 import java.util.regex.Pattern;     
 public class Test {   
 	/** 
 	 * @param args 
 	 */ 
 	public static void main(String[] args) { 
 		// TODO 自动生成方法存根 
 		String str= "hd0$jfsfi$fjjaio%jsfij$jsfsjf%jsjg# "; 
 		String[] s = str.split( "\\$|%|# "); 
 		for(int i=0;i <s.length;i++) { 
 			System.out.println(s[i]); 
 		} 
 		Pattern p = Pattern.compile( "(\\w*)\\$*|(\\w*)%*|(\\w*)#* "); 
 		Matcher m = p.matcher( "hd0$jfsfi$fjjaio%jsfij$jsfsjf%jsjg# "); 
 		while(m.find()) 
 			System.out.println(m.group(1)); 
 	}   
 } 
 上段代码两种方式都有
------解决方案--------------------楼上这段代码: for(String t : s) { 
   System.out.println(t); 
 低版本不兼容,我觉得用for(int i=0;i <s.length;i++) { 
 			System.out.println(s[i]);并不比楼上的差多少
------解决方案--------------------str.substring(0, str.indexOf( "# ")).split( "\\$|\\% ");