替换$中的字符串

MBy*_*ByD 2 java string

我使用以下行删除给定数据"DATA"中的所有$符号和空格:

String temp_data = DATA.replaceAll("$", "").replaceAll(" ", "");
Run Code Online (Sandbox Code Playgroud)

但它不会删除$符号,只删除空格.有人知道为什么吗?

谢谢,Binyamin

Nat*_*hes 9

第一个参数replaceAll采用的是正则表达式,正则表达式引擎将$视为代表行尾的特殊字符.用\来逃避它:像这样:

String temp_data = DATA.replaceAll("\\$", "").replaceAll(" ", "");
Run Code Online (Sandbox Code Playgroud)

这是使用replaceAll和replace的示例:

import junit.framework.TestCase;

public class ReplaceAllTest extends TestCase {

    private String s = "asdf$zxcv";

    public void testReplaceAll() {
        String newString = s.replaceAll("\\$", "X");
        System.out.println(newString);
        assertEquals("asdfXzxcv", newString);
    }

    public void testReplace() {
        String newString =s.replace("$", "");
        System.out.println(newString);
        assertEquals("asdfzxcv", newString);
    }
}
Run Code Online (Sandbox Code Playgroud)