字符串问题一

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);
		}
	}

  

你可能感兴趣的:(字符串)