javareplaceall
⑴ 浅谈java中replace和replaceAll的区别
replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是:
1、replace的参数是char和CharSequence,既可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);
2、replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d",
"*")把一个字符串所有的数字字符都换成星号;
3、相同点是都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串,如果只想替换第一次出现的,可以使用
4、replaceFirst(),这个方法也是基于规则表达式的替换,但与replaceAll()不同的时,只替换第一次出现的字符串;
5、另外,如果replaceAll()和replaceFirst()所用的参数据不是基于规则表达式的,则与replace()替换字符串的效果是一样的,即这两者也支持字符串的操作;
还有一点注意:执行了替换操作后,源字符串的内容是没有发生改变的.
⑵ java replaceall 怎么替换
replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是:
1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);
2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;
相同点:都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串,如果只想替换第一次出现的,可以使用replaceFirst(),这个方法也是基于规则表达式的替换,但与replaceAll()不同的是,只替换第一次出现的字符串;
另外,如果replaceAll()和replaceFirst()所用的参数据不是基于规则表达式的,则与replace()替换字符串的效果是一样的,即这两者也支持字符串的操作;
还有一点注意::执行了替换操作后,源字符串的内容是没有发生改变的。
举例如下:
String src = new String("ab43a2c43d");
System.out.println(src.replace("3","f"));=>ab4f2c4fd.
System.out.println(src.replace('3','f'));=>ab4f2c4fd.
System.out.println(src.replaceAll("\\d","f"));=>abffafcffd.
System.out.println(src.replaceAll("a","f"));=>fb43fc23d.
System.out.println(src.replaceFirst("\\d,"f"));=>abf32c43d
System.out.println(src.replaceFirst("4","h"));=>abh32c43d.
如何将字符串中的"\"替换成"\\":
String msgIn;
String msgOut;
msgOut=msgIn.replaceAll("\\\\","\\\\\\\\");
原因:
'\'在java中是一个转义字符,所以需要用两个代表一个。例如System.out.println( "\\" ) ;只打印出一个"\"。但是'\'也是正则表达式中的转义字符(replaceAll 的参数就是正则表达式),需要用两个代表一个。所以:\\\\被java转换成\\,\\又被正则表达式转换成\。
同样
CODE: \\\\\\\\
Java: \\\\
Regex: \\
将字符串中的'/'替换成'\'的几种方式:
msgOut= msgIn.replaceAll("/", "\\\\");
msgOut= msgIn.replace("/", "\\");
msgOut= msgIn.replace('/', '\\');
通过实例区分了java中replace()和replaceAll()的不同点,希望本文对大家学习有所帮助
⑶ java replaceAll该怎么用
API如下:
publicStringreplaceAll(Stringregex, Stringreplacement)
regex: 需要匹配替换的正则replacement: 将匹配的串替换为此字符串
根据API可知,一个String对象即可调用此API
参考以下例子:
String s = new String("I love programming so much!");
System.out.println(s);//I love programming so much!
s = s.replaceAll("m{1,}", "xxxx_xxxx");
System.out.println(s);//I love progrxxxx_xxxxxxxx_xxxxaing so xxxx_xxxxuch!
那么 tmpString = tmpString.replaceAll("'", "\\'");
官方最新API地址docs.oracle.com/javase/8/docs/api/
⑷ java中replaceAll的用法,不同的用法为什么会报错
StringBuilder 可以用repalce方法。
其实你这里都可以用这个方法,效果和repalceAll是一样的,代码如下:
packagemytest;
//replace替换匹配字符串
publicclasstest{
publicstaticvoidmain(String[]args){
Strings1="上海自来水来自海上";
System.out.println(s1.replace("自来水","*"));//将“自来水”三个字替换为“*”
StringBuilders2=newStringBuilder();
s2.append("大家好").append("这是苍井空").append("老师");
System.out.println(s2.replace("苍井空","井空"));
}
}
replaceAll方法比replace方法功能主要是多了可以用正则表达式来匹配字符串,你这里没有用正则,用replace方法就好,而且String 和 StringBuilder都有这个方法
⑸ java中String的replaceAll方法
字符组中“”是有转义的含义的,就跟你replaceAll中使用多个""是为了转义一样。
你定义var1时,java是认为"dfas'f"中的""是转义字符,转义"'"(最后还是"'")。所以var1和var2其实是一样的。这也是为什么你replaceAll后的结果也是一样的。
publicclassTest{
publicstaticvoidmain(String[]args){
Stringvar1="dfas'f";
Stringvar2="dfas'f";
System.out.println(var1);//结果是dfas'f
System.out.println(var1.equals(var2));//结果是true
}
}
⑹ java replaceAll 正则表达式的用法是什么
String a = "2016-06-24 10:33:20";
String b = a.replaceAll("[-\s:]", "");
System.out.println(b);
跟你简单说明下
正则表达式中[]中的内容表示匹配其中任何一个
s 表示匹配任何不可见的空字符,但是在java中需要在前面再加一个转义字符才能生效
⑺ java replaceAll用法
把
String s1 = s.replaceAll(ss, "");
System.out.println(s1);
改为
s = s.replaceAll(ss, "");
System.out.println(s);
即可
⑻ JAVA中string.replace和string.replaceAll的区别及用法
1、替换方式不同
【public String replace( )】
是通过用 newChar 替换此字符串中出现的所有 oldChar 而生成的。
【public String replaceAll( )】
使用给定的 replacement 字符串替换此字符串匹配给定的正则表达式的每个子字符串。
2、参数不同
【replace】的参数是char和CharSequence。可以支持字符的替换,也支持字符串的替换。
【replaceAll】的参数是regex,regex表示是正则表达式。即基于正则表达式的替换。
用法范例一:
public static void main(String[] arg) throws OgnlException {
String s =”sdf\a\aa”;
//把s中的反斜杠 替换为\
System.out.println(s);
System.out.println(s.replaceAll(“\\”, “\\\\”));
System.out.println(s.replace(“\”, “\\”));
}
用法范例二:
String str = "wel2come3Souhe";
String str1 = str.replace("e", "E");
String str3 = str.replace('e', 'E');
System.out.println("replace字符串==" + str1);
System.out.println("replace字符=="+str3);
String str2 = str.replaceAll("\d", "a");//将数字替换a
System.out.println("replaceAll==" + str2);
输出结果:
replace字符串==wEl2comE3SouhE
replace字符==wEl2comE3SouhE
replaceAll==welacomeaSouhe
(8)javareplaceall扩展阅读
Java中的String类
1、String类是final类,因此String类不能被继承。
2、String的成员方法都默认为final方法。
3、被final修饰的类是不允许被继承的,并且该类中的成员方法都默认为final方法。
4、String类其实是通过char数组来保存字符串的。
5、String对象一旦被创建就是固定不变的。
6、对String对象的任何改变都不影响到原对象,相关的任何change操作都会生成新的对象。
⑼ java replaceAll应该怎么用,谢谢大神了
替换字符串中所有符合条件的字符
有两个参数,第一个参数是被替换的串(也可以用正则),第二个参数是替换后的串
比如"aabbccaabbcc".replaceAll("aa","ss");
正则的"asd123asdiopiop".replaceAll("\\d", "kk");类似这种
⑽ java中,replaceAll方法中的问题
public String replaceAll(String regex,
String replacement)使用给定的 replacement 字符串替换此字符串匹配给定的正则表达式的每个子字符串。
此方法调用的 str.replaceAll(regex, repl) 形式产生与以下表达式完全相同的结果:
Pattern.compile(regex).matcher(str).replaceAll(repl)
参数:
regex - 用来匹配此字符串的正则表达式
replacAll要用正则表达式,所以[*]就可以,[*]表示*