我用下面的行删除所有$符号和空格在给定的数据“DATA”:
String temp_data = DATA.replaceAll("$", "").replaceAll(" ", "");
但它不会删除$迹象,只有空间。有人知道为什么吗?
感谢, 本雅明
我用下面的行删除所有$符号和空格在给定的数据“DATA”:
String temp_data = DATA.replaceAll("$", "").replaceAll(" ", "");
但它不会删除$迹象,只有空间。有人知道为什么吗?
感谢, 本雅明
第一个参数的replaceAll需要的是一个正则表达式,而正则表达式引擎将$为代表的线的末端一个特殊字符。与\这样的退出:
String temp_data = DATA.replaceAll("\\$", "").replaceAll(" ", "");
使用的replaceAll和替换下面是一个例子:
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);
}
}
replaceAll
需要一个正则表达式 - 和 “$” 在正则表达式的特殊含义。
尽量只replace
代替:
String temp_data = DATA.replace("$", "").replace(" ", "");
String.replaceAll
使用正则表达式匹配应该被替换的字符。然而,在正则表达式中,$
是一个特殊符号,表示字符串结束,因此它不会被识别为字符本身。
您可以逃脱$
符号,或者仅使用String.replace
方法,对普通字符串的工作原理:
String temp_data = DATA.replace("$", "").replace(" ", "");
// or
String temp_data = DATA.replaceAll("\\$", "").replaceAll(" ", "");
// or even
String temp_data = DATA.replaceAll("\\$| ", "");
是的,它的工作原理和解释问题,但没有必要使用'replaceAll(String regExp) '如果你想消除单个字符。 – 2010-11-09 13:53:59
谢谢。为我工作很好。 – MByD 2010-11-09 14:02:27
@Andreas_D:你是对的,我添加了一个使用替换方法的例子。 – 2010-11-09 21:28:11