/**
* 假如有字符串“6sabcsssfsfs33” ,用最有快速的方法去掉字符“ab3“
*
*/
- //=======第一种方法======
- publicstaticvoidreplaceString(Stringstr){
- charmyChar[]=str.toCharArray();
- intlen=myChar.length;
- StringtempStr="";
- for(inti=0;i<len;i++){
- if('a'==myChar[i]||'b'==myChar[i]||'3'==myChar[i]){
- myChar[i]='';
- }
- Stringtemp="";
- temp=myChar[i]+"";
- tempStr+=temp.trim();
- }
- System.out.println(tempStr);
- }
- //=======第二种方法======
- publicstaticvoidreplaceString2(Stringstr){
- chars[]=str.toCharArray();
- intlen=str.length();
- charstring[]=newchar[14];
- StringBuffersb=newStringBuffer();
- for(inti=0;i<len;i++){
- if('a'!=s[i]&&'b'!=s[i]&&'3'!=s[i]){
- //string[i]=s[i];
- sb.append(s[i]);
- }
- //Stringtemp=null;
- //temp=string[i]+"";
- //sb.append(temp.trim());
- }
- System.out.println(sb.toString());
- }
- //=======第三种方法======
- publicstaticStringreplaceString3(Stringdes,Stringreg){
- StringBuilderbuf=newStringBuilder(des.length());
- char[]chars=des.toCharArray();
- char[]regchars=reg.toCharArray();
- for(charc:chars){
- booleanb=true;
- for(charregchar:regchars){
- if(c==regchar){
- b=false;
- break;
- }
- }
- if(b)
- buf.append(c);
- }
- returnbuf.toString();
- }
- //=======第四种方法======
- publicstaticvoidreplaceString4(Stringstr){
- //指定为字符串的正则表达式必须首先被编译为此类的实例
- Patternpattern=Pattern.compile("[^a|b|3]");//^非;边界匹配器"^"行的开头
- //然后,可将得到的模式用于创建Matcher
- //对象,依照正则表达式,该对象可以与任意字符序列匹配。执行匹配所涉及的所有状态都驻留在匹配器中,所以多个匹配器可以共享同一模式。
- Matchermatcher=pattern.matcher(str);
- Stringtemp="";
- while(matcher.find()){
- temp+=matcher.group();//返回由以前匹配操作所匹配的输入子序列
- }
- System.out.println(temp);
- }
- //=======第五种方法======
- publicstaticvoidreplaceString5(Stringstr){
- StringBuffersb=newStringBuffer();
- Scannerscanner=newScanner(str);
- //匹配扫描
- scanner.findInLine("(//S*)ab(//S*)33(//S*)");
- //返回此扫描器所执行的最后扫描操作的匹配结果
- MatchResultms=scanner.match();
- for(inti=1;i<ms.groupCount();i++){//注意i的初始值
- sb.append(ms.group(i));
- }
- scanner.close();
- System.out.println(sb);
- }
- //=======第六种方法======
- publicstaticStringreplaceString6(Stringstr,StringtoRemove){
- boolean[]removeMap=newboolean[255];
- char[]originChars=str.toCharArray();
- char[]todoChars=toRemove.toCharArray();
- char[]destChars=null;
- intstrLen=0;
- //buildtoRemovecharsmap
- for(inti=0;i<todoChars.length;i++){
- removeMap[(todoChars[i]&0xFF)]=true;
- }
- for(inti=0;i<originChars.length;i++){
- if(removeMap[(originChars[i]&0xff)]){
- if(destChars==null){
- destChars=newchar[originChars.length-1];
- System.arraycopy(originChars,0,destChars,0,i);
- }
- }else{
- if(destChars!=null){
- destChars[strLen]=originChars[i];
- }
- strLen++;
- }
- }
- returndestChars==null?str:newString(destChars,0,strLen);
- }