欢迎访问鸿雪径软件工作室,这里介绍软件工作室的相关技术产品、动态以及鸿雪径杂谈,如有技术合作请与工作室联系!邮费网 易食烤吧 特产大全网
首页 > JAVA > java替换字符串时忽略大小写

java替换字符串时忽略大小写

发布时间:2014-12-02 作者:伊君 点击:464

替换字符串大家都用的很熟悉了,但是估计日常很少用到替换时忽略大小写,今天问了身边几个工作超10年的java程序员,竟然大家都不知道怎么写了,这种基础代码竟然都淡忘了。正好学习整理一下,在这里也分享备忘一下。

第一种方法:直接用replaceAll

   使用字符串的replaceAll方法,使用(?i)匹配符。

   例如: (?i)abc  ,替换abc任何忽略大小写内容。

           A(?i)bc,替换 A+(忽略大小写的bc)。

   代码示例如下:

System.out.println("hongxuejingsCriptcom".replaceAll("(?i)script",""));
System.out.println("hongxuejingSCriptcom".replaceAll("s(?i)cript",""));

输入结果如下图:


第二种方法:使用正则表达式的Matcher 的appendReplacement

/***
	 * replaceAll,忽略大小写
	 * @param input
	 * @param regex
	 * @param replacement
	 * @return
	 */
	public StringBuffer replaceAllIgnoreCase(String input,String regex,String replacement){
		 Pattern p = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);
	        Matcher m = p.matcher(input);
	        StringBuffer sb = new StringBuffer();
	        boolean result = m.find();
	        while (result)
	        {
	            m.appendReplacement(sb, replacement);
	            result = m.find();
	        }
	        m.appendTail(sb);
	        return sb;
	}

这个是使用正则表达式重新实现了replaceAll方法。


方法三:使用正则表达式Matcher 的replaceAll

/***
 * replaceAllIgnoreCase,忽略大小写
 * 
 * @param input
 * @param regex
 * @param replacement
 * @return
 */
public String replaceAllIgnoreCase(String input, String regex, String replacement) {
Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(input);
String result = m.replaceAll(replacement);
return result;
}



更多关于 java,String,replaceAll,替换字符串 的信息
本站部分文章转载于网上,版权归原作者所有。如果侵犯您的权益,请Email和本站联系!
鸿雪径 www.HongXueJing.com  冀ICP备07017673号-4