首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

询问一个字符串处理的最优方法解决方法

2012-03-04 
询问一个字符串处理的最优方法有一个字符串类似于:Stringstr hd0$jfsfi$fjjaio%jsfij$jsfsjf%jsjg# 其

询问一个字符串处理的最优方法
有一个字符串类似于: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( "\\$|\\% ");

热点排行