我正在尝试用反斜杠替换字符串的一部分。
我可以使用BorderStyle = Dotted; ; ; ; Solid
方法执行此操作,但是尝试使用.replace()
或.replaceAll()
进行此操作会导致错误。
这是我正在使用的代码,已将其推送到replit:
.replaceFirst()
这是有错误的输出:
class Main {
public static void main(String[] args) {
String a = "hello world";
a = a.replaceFirst("h", "H");
System.out.println(a);
System.out.println(a.replace("o", "\\"));
System.out.println(a.replaceAll("w", "\\"));
System.out.println(a.replaceFirst("e", "\\"));
}
}
答案 0 :(得分:1)
replaceAll
进行正则表达式匹配和基于正则表达式的替换。
正则表达式替换字符串可以包含对搜索正则表达式的引用,形式为\0
(如果编码为字符串,则为\\0
。
您的程序出现错误,因为它期望在\后面加上数字,但是数字丢失。使用\\
(或在您的情况下使用\\\\
,因为在您的情况下您将其编码为字符串)
答案 1 :(得分:0)
如果使用"\\"
会发生什么:第一个\
将逃脱第二个。然后,您好的h
将被\
替换。您的字符串现在值"\ello"
。并且,当您打印此字符串时,将\
进行解释并转义e
(由于e
不是特殊字符,因此无济于事),因此您获得了ello
。 / p>
当您使用"\\\\"
时:第一个\
占据第二个,而第三个逃逸出第四个。然后将h
替换为\\
。您的字符串现在值"\\ello"
。并且当您打印此图形时,第一个\
会跳过第二个,因此您得到\ello
答案 2 :(得分:-1)
只写System.out.println(a.replace(“ o”,“ \\\”))而不是System.out.println(a.replace(“ o”,“ \\”)));
玩得开心。