我用下面的行刪除所有$符號和空格在給定的數據「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