ReplaceAll no reemplaza string

Quiero que el texto "REPLACEME" sea reemplazado por mis símbolos StringBuffer. Cuando imprimo símbolos, es una cadena válida. Cuando imprimo mi consulta, todavía tiene el texto REPLACEME en vez de símbolos. ¿Por qué?

private String buildQuery(){ String query = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(REPLACEME)&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback="; deserializeQuotes(); StringBuffer symbols = new StringBuffer(); for(int i = 0; i < quotes.size();i++){ if(i == (quotes.size()-1)) symbols.append("%22" + quotes.get(i).getSymbol() + "%22%"); //end with a quote else symbols.append("%22" + quotes.get(i).getSymbol() + "%22%2C"); } System.out.println("***SYMBOLS***" + symbols.toString()); query.replaceAll("REPLACEME", symbols.toString()); return query; } 

    3 Solutions collect form web for “ReplaceAll no reemplaza string”

    Cambio

     query.replaceAll("REPLACEME", symbols.toString()); 

    a:

     query = query.replaceAll("REPLACEME", symbols.toString()); 

    Las cadenas en Java están diseñadas para ser inmutables .
    Es por eso que replaceAll() no puede reemplazar a los caracteres de la cadena actual, por lo que debe devolver una nueva cadena con los caracteres reemplazados.


    También si usted quiere simplemente reemplazar literales y no necesita el uso de la sintaxis regex use replace lugar de replaceAll (soporte de sintaxis regex es sólo diferencia entre estos dos métodos). Es más seguro en caso de que desee reemplazar los literales que pueden contener los metacaracteres regex como * , + , [ , ] y otros .

    Lea la documentación 🙂 replaceAll () devuelve una nueva String, reemplaza dentro de la String existente. La razón de esto es que las cuerdas son objetos inmutables.

    El objeto String en Java es inmutable. El replaceAll no reemplazará los datos en la cadena, sino que generará una nueva cadena. Prueba esto:

     query = query.replaceAll("REPLACEME", symbols.toString()); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.