码迷,mamicode.com
首页 > 其他好文 > 详细

求助:关于字符串截取的问题

时间:2015-05-19 16:59:14      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:

类似于:jdbc:mysql://localhost:3306/bill?characterEncoding=utf-8这种格式字符串,想分别将mysql 、  localhost、3306、bill信息从该字符串中提取出来,用该如何提取。

希望大家给点建议和思路

本问题已解决:

本人思路有两种,第一种思路

//第一种方法
/**
	 * 
	 * @param tags 所要处理的字符
	 * @param str  所要处理的字符串
	 * @return
	 * @throws Exception
	 */
public static List<String> getStrsByTags(String[] tags, String str)
			throws Exception {
		int[] index = new int[tags.length];
		List<String> result = new ArrayList<String>();
		int flag = 0;
		int cutPoint = 0; // 截取点
		String block = "";
		while (flag == 0) {
			System.out.println("循环开始了,flag = " + flag);
			for (int i = 0; i < tags.length; i++) {
				index[i] = str.indexOf(tags[i]);
			}
			Arrays.sort(index); // 数组进行排序
			if (index[(tags.length) - 1] < 0) { // 数组中最大的一项小于零
				// 终止while循环
				flag = 1;
			}
			for (int j = 0; j < index.length; j++) {
				if (index[j] >= 0) {
					cutPoint = index[j] + 1;
					break;
				}
			}
			System.out.println("字符串中最先出现的位置为" + cutPoint + " 最后出现的位置为"
					+ index[(tags.length) - 1]);
			block = str.substring(0, cutPoint);
			str = str.substring(cutPoint);
			result.add(block); // 将字符串添加到list中
		}
		return result;
	}
	//第二种方法
	/**
	 * 
	 * @param tags 字符串中有的标志
	 * @param str  要处理的字符串
	 * @param my  将所有的标志都转换为的标志
	 * @return
	 * @throws Exception
	 */
	public static List<String> getByTags(String[] tags,String str,String my)throws Exception{
		List<String> result = new ArrayList<String>();
		for(String tag :tags){
			str = str.replaceAll(tag, my);
		}
		String[] strs = str.split(my);
		for(String s :strs){   //剔除为空的数据
			if(s!=null && s!="" && !s.isEmpty()){
				result.add(s);
			}
		}
		return result;
	}	
	
	
	
	//测试
	public static void main(String[] args){
		String[] strs= {"/",":","[?]"};
		 String str = "jdbc:mysql://localhost:3306/bill?characterEncoding=utf-8";
		 try{
         List<String> list = getByTags(strs, str,",");
         for(String result : list){
        	 System.out.println(">>>>>"+result);
         }
		 }catch (Exception e) {
			 e.printStackTrace();
			// TODO: handle exception
		}
	}

方法一 该种方法还没有真正的获取所需要的字符串,需要对获取的字符串再进行一些筛选,比如便利这些数据,将原有的那些字符替换为“” ,这个思路就是不断的去截取这个字符串,一直截取到不能再截取为止,并将截取下来的字符串保存下来

方法二是将所有特殊字符全部替换为想要的字符,通过字符获取数组,并过滤掉数组中的杂质


求助:关于字符串截取的问题

标签:

原文地址:http://my.oschina.net/pumpkin0523/blog/416716

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!