有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何打印$or\\about regex文件

你能解释一下为什么34会出现错误吗

在第1和第2种情况下,我得出结论,转义语法需要两个\字符,比如java中的\\

但是在{}和{}情况下,它不起作用

特别是在4的情况下,更奇怪的是,当我把\\\\放进去时,它就工作了

  str = "$12$ \\-\\ $25$";  
    System.out.println(str.replaceAll("\\$", ""));  //1 : 12 \-\ 25    (i get how this works)

    System.out.println(str.replaceAll("^\\$", "")); //2 : 12$ \-\ $25$ (i get how this works)

    System.out.println(str.replaceAll("\\$$", str)); //error 3 want to print : $12$ \-\ $25

    System.out.println(str.replaceAll("\\\", "")); // error 4 want to print : $12$ - $25$

共 (2) 个答案

  1. # 1 楼答案

    案例3的问题似乎是替换字符串(第二个参数):它应该是一个空字符串。下面的代码打印期望的答案$12$ \-\ $25

    public class HelloWorld{
         public static void main(String []args){
            String str = "$12$ \\-\\ $25$";
            System.out.println(str.replaceAll("\\$$", "")); 
        }
    }
    

    案例4在@Oblivion Creations的回答中得到了解决:您缺少一个\。下面的代码打印期望的答案$12$ - $25$

    public class HelloWorld{
         public static void main(String []args){
            String str = "$12$ \\-\\ $25$";
            System.out.println(str.replaceAll("\\\\", "")); 
        }
    }
    
  2. # 2 楼答案

    关于案例4,您实际上需要另一个\

    System.out.println(str.replaceAll("\\\\", "")); // error 4 want to print : $12$ - $25$
    

    原因是java将\视为一个特殊字符,因此需要\\来获取字符串中的单个\。但是,regex也使用\作为特殊字符,需要\\检查单个\,因此需要转义两次