读书人

字符串有关问题一

发布时间: 2012-09-04 14:19:30 作者: rapoo

字符串问题一

1.abc@def@mmm或@abc@def@mmm@拆分成数组,实现类似于String的split("@")方法,不能用string的正则方法
下面是解决方案:

?

方案一:

public static String[] split(String s,String rex){System.out.println(s.length());if(s.indexOf(rex)!=-1&&s.length()>=1){long start=System.currentTimeMillis();List<String> list=new ArrayList<String>();int index=0;int tindex=0;while((tindex=s.indexOf(rex, index))!=-1){if(tindex==0){index++;continue;}else{String str=s.substring(index,tindex);if(str.equals("")){index++;continue;}list.add(str);index=tindex+1;if(s.indexOf(rex, index)==-1&&index!=s.length()){System.out.println(index);list.add(s.substring(index));}}}System.out.println(Arrays.toString(list.toArray()));long end=System.currentTimeMillis();System.out.println(end-start);return (String[]) list.toArray(new String[]{});}else{return null;}}

??方案二:

public static void main(String[] args) {//String str = "@@ab@c@@@@@@def@mmm@";String str = "ab@c@@@@@@def@mmm";String temp = "";boolean va = false;List<String> list = new ArrayList<String>();for(int i=0;i<str.length();i++){String s = str.substring(i, i+1);if(s.equals("@")){if(!temp.equals("")){list.add(temp);temp = "";}}else{temp += s;}//如果不为空if(i== str.length()-1 && !temp.equals("")) {list.add(temp);}}for(String st : list){System.out.println(st);}}

??

读书人网 >编程

热点推荐