1. 查找子串indexOf
str1.indexOf(97);//参数为字符的ascii码 //查找指定字符串第一次出现的位置
str1.indexOf("12"); //查找指定字符第一次出现的位置,从索引处开始(包括索引处)
str1.indexOf(97, 0); //查找指定字符串第一次出现的位置,从索引处开始(包括索引处
str1.indexOf("12232",0);
2. 截取字符串substring
java截取指定字符串中的某段字符
String str = "房估字(2014)第YPQD0006号"; String jieguo = str.substring(str.indexOf("第")+1,str.indexOf("号"));
str.substring(int beginIndex); //截取掉str从首字母起长度为beginIndex的字符串,将剩余字符串赋值给str; 将字符串从索引号为2开始截取索引处到末尾(不包括索引处)(索引值从0开始)
str.substring(int beginIndex,int endIndex); //截取str中从beginIndex开始至endIndex结束时的字符串,并将其赋值给str; 指定区间(不包括结束索引处),Index从0开始
通过StringUtils提供的方法
StringUtils.substringBefore(“dskeabcee”, “e”); //结果是:dsk 这里是以第一个”e”,为标准。
StringUtils.substringBeforeLast(“dskeabcee”, “e”) //结果为:dskeabce这里以最后一个“e”为准。
3. 分割字符串split
java.lang.string.split
split方法,将一个字符串分割为子字符串,然后将结果作为字符串数组返回,在 stingObj 中每个出现 separator 的位置都要进行分解。
如果分割字符为正则表达式里的字符,则需要"\"做转义。“ . ”在正则表达式中有特殊的含义,因此我们使用的时候必须进行转义。
不过通过这种方式截取会有很大的性能损耗,因为分析正则非常耗时。
stringObj.split([separator,[limit]]) //split 的实现直接调用的 matcher 类的 split 的方法。
stringObj 必选项。要被分解的 String 对象或文字。该对象不会被 split 方法修改。
separator 可选项。字符串或正则表达式 对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。 separator 不作为任何数组元素的部分返回。
limit 可选项。该值用来限制返回数组中的元素个数。
String str ="abc,12,3yy98,0";
String[] strs=str.split(","); //正则传入split()。返回的是一个字符串数组类型。
for(int i=0,len=strs.length;i++) String[] splitstr=str1.split("a"); //以a为分割字符
for(String res : splitstr) System.out.println(res);