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

类似于: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
		}
	}

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

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

时间: 2024-10-20 23:17:07

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

istringstream字符串流,实现类似字符串截取的功能,字符串流中的put,str()将流转换成为字符串string

 1. istringstream字符串流 #include <iostream> #include <sstream> #include <string> using namespace std; struct MyStruct { string str1, str2, str3; double db; int num; char ch; }; void main() { string  mystring("china  google microsoft

Linux下实现字符串截取方法总结

Linux下实现字符串截取,大体上可以分为两种,使用命令实现截取,使用工具实现截取.具体截取方式如下: a.#截取,可以实现删除左边字符,保留右边字符 从左边第一个</>开始,删除</>及之前的所有字符 str=http://www.baidu.com/index.html echo ${str#*/}        # right first / 输出:      /www.baidu.com/index.html b.##截取,可以实现删除左边字符,保留右边字符 从最右边的&l

shell脚本中8种字符串截取方法_转自脚本之家

转自:http://www.jb51.net/article/56563.htm Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符. echo ${var#*//} 其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符即删除 http://结果是 :www.aaa.com/123.htm 2. ## 号截取,删除左边字符,保留右边字符

MySQL字符串函数substring:字符串截取

MySQL 字符串截取函数:left(), right(), substring(), substring_index().还有 mid(), substr().其中,mid(), substr() 等价于 substring() 函数,substring() 的功能非常强大和灵活. 1. 字符串截取:left(str, length) mysql> select left('example.com', 3);+-------------------------+| left('example.

Shell脚本8种字符串截取方法总结

Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符. echo ${var#*//} 其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符即删除 http://结果是 :www.aaa.com/123.htm 2. ## 号截取,删除左边字符,保留右边字符. echo ${var##*/} ##*/ 表示从左边开始删除最后(最右边)一个

php中文字符串截取方法实例总结

本文实例总结了php中文字符串截取方法,非常实用的技巧.具体方法分析如下: 1.使用mbstring扩展库的mb_substr截取就不会出现乱码了. 2.自己书写截取函数,但效率不如用mbstring扩展库来得高. 3.如果仅是为了输出截取的串,可用如下方式实现:substr($str, 0, 30).chr(0). substr()函数可以分割文字,但要分割的文字如果包括中文字符往往会遇到问题,这时可以用mb_substr()/mb_strcut这个函 数,mb_substr()/mb_str

个人对php,js,css字符串截取的办法汇总

下面的是个人对php,js,css字符串截取的办法汇总,对大神来说可能没什么含量,求少喷哦,当然可以学习教程增强自己的编程能力. 首先是PHP版本的. 其实只用mb_strimwidth一个函数就可以了,该函数的说明如下: mb_strimwidth -  获取按指定宽度截断的字符串 string mb_strimwidth ( string $str , int $start , int $width [,  string $trimmarker = "" [, string $en

Swift字符串截取方法的改进

字符串截取方法是字符串处理中常用的基本方法.熟悉iOS的朋友都知道在基础类的NSString中有substringToIndex:,substringFromIndex:以及substringWithRange:这三种基本的截取方法. 问题描述: 那么,Swift语言中的String类是否有同样的截取功能呢? 反复查看String类的头文件,并没有找到相同或相似的函数接口. 直接在swift文件里也不能对一个String类的变量调用上面的方法. 然而通过引入基础框架,即 import Found

MySQL 字符串截取函数;

*left(), right(), substring(), substring_index(),mid(), substr(),mid(), substr() 等价于 substring() 函数 1. 字符串截取:left(str, length) mysql> select left('example.com', 3); +-------------------------+ | left('example.com', 3) | +-------------------------+ |

PHP字符串截取,计算字符串长度

1 /** 2 * 字符串截取,支持中文和其他编码 3 * @param [string] $str [字符串] 4 * @param integer $start [起始位置] 5 * @param integer $length [截取长度] 6 * @param string $charset [字符串编码] 7 * @param boolean $suffix [是否有省略号] 8 * @return [type] [description] 9 */ 10 function msubs