Ciągi znaków są niezmienne , co oznacza, że ich zawartość nie może się zmienić. Kiedy dzwonisz replace(this,that)
, otrzymujesz całkowicie nowy ciąg. Jeśli chcesz zachować tę nową kopię, musisz przypisać ją do zmiennej. Możesz nadpisać stare odniesienie (a la sentence = sentence.replace(this,that)
lub nowe odniesienie, jak widać poniżej:
public class Test{
public static void main(String[] args) {
String sentence = "Define, Measure, Analyze, Design and Verify";
String replaced = sentence.replace("and", "");
System.out.println(replaced);
}
}
Na marginesie, zwróć uwagę, że usunąłem contains()
czek, ponieważ jest to niepotrzebne wezwanie. Jeśli go nie zawiera, zamiennik po prostu nie dokona żadnej wymiany. Chciałbyś, aby ta metoda zawierała tylko wtedy, gdy wymieniasz inny niż rzeczywisty stan, który sprawdzasz.