永发信息网

java中String的replaceAll方法

答案:2  悬赏:10  手机版
解决时间 2021-02-20 22:02
String var1 = "dfas\'f";System.out.println(var1.replaceAll("\\\'", "@@@"));
String var2 = "dfas'f";System.out.println(var2.replaceAll("\\\'", "@@@"));
都可以替换
最佳答案
字符组中“\”是有转义的含义的,就跟你replaceAll中使用多个"\"是为了转义一样。

你定义var1时,java是认为"dfas\'f"中的"\"是转义字符,转义"'"(最后还是"'")。所以var1和var2其实是一样的。这也是为什么你replaceAll后的结果也是一样的。
public class Test {
    public static void main(String[] args) {
        String var1 = "dfas\'f";
        String var2 = "dfas'f";
        System.out.println(var1); // 结果是 dfas'f
        System.out.println(var1.equals(var2)); // 结果是 true
    }
}
全部回答
之所以出错是因为 string的replaceall是采用“正则表达式”的方式替换。 在正则表达式中 \ (一个斜线)是用 \\ 来表示(即:用两个斜线表示一个斜线) 而在java语言中 \ (一个斜线)是用 \\ 来表示。(即:也用两个斜线表示一个斜线) 所以正则表达式为两个斜线("\\")的写法,在java语言中要用4个斜线来表示"\\\\" (即: 一个"现实中的斜线" 在 正则表达式中用2个斜线来表示,而在java中2个斜线要用4个斜线来表示) 所以代码如下: // str的实际内容是\\ (即两个斜线) string str = "\\\\"; //将str中的两个斜线,转换为两个双斜线(即: 4条斜线) str = str.replaceall("\\\\", "\\\\\\\\"); system.out.println(str); 看着有些晕吧。。。呵呵~~ 没办法。。。只能这样写。。。。 你可以去学习一下正则表达式。 正则表达式说简单也简单,说难那还真够难的。 关键是用正则表达式去写什么东西。 曾经写过一个判断日期的正则表达式。。。。 我靠。。。居然写了n行。。。。 写完了,过2天,自己都不认识了。。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
电子传递的递氢体有五种类型,它们按一定顺序
pr好学还是ae好学?有什么不同
飞越科技地址在什么地方,想过去办事
上海嘉定科技学院是在嘉定新城区或者是中心城
茶花从几月开始萌芽
若2y-4的立方根与4-3x的立方根互为相反数,求x
六福珠宝金地百货专柜在什么地方啊,我要过去
360除以(12减2)乘4简便运算
现在余额宝1万一天收益多少?余额宝里的钱转
山东人菏泽人,参加了农村合作医疗,在辽宁大
天籁2.5刹车油油位感应原理
急性上呼吸道感染约有70%~80%由何引起A.细
星派门窗·阳光房地址在哪,我要去那里办事
换usb转音频接口有用吗
兰州拉面馆(永安巷小区东南)地址在什么地方,
推荐资讯
现在养前四后八挣钱吗
速求三位数乘两位数口算题越多越好
我是尿毒症患者,但没透折,能办特种病吗
我发了一条恋爱意思的朋友圈,前女友为何立马
呃逆气机郁滞证的治法为A.滋养胃阴,降逆止呕
五行属水字
滑板如何跳跃中国语
一剪钟情造型工作室我想知道这个在什么地方
去西班牙的机票一般多少钱
不是说男人的真爱只有一次吗?男人永远会记住
已知抛物线Y=2x^2-mx+m与直角坐标平面上两点
天天电脑科技怎么去啊,有知道地址的么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?