¿Cómo sabe qué parte conservar y qué parte descartar? Sin saber eso, ¿es imposible responder a tu pregunta?
Raedwald
Respuestas:
156
Hay varias formas de hacerlo. Si tiene la cadena que desea reemplazar, puede usar los métodos replaceo replaceAllde la Stringclase. Si está buscando reemplazar una subcadena, puede obtener la subcadena usando la substringAPI.
Por ejemplo
String str = "manchester united (with nice players)";
System.out.println(str.replace("(with nice players)", ""));
int index = str.indexOf("(");
System.out.println(str.substring(0, index));
Para reemplazar el contenido dentro de "()" puede usar:
int startIndex = str.indexOf("(");
int endIndex = str.indexOf(")");
String replacement = "I AM JUST A REPLACEMENT";
String toBeReplaced = str.substring(startIndex + 1, endIndex);
System.out.println(str.replace(toBeReplaced, replacement));
No fui el votante negativo, pero ¿quizás porque pusiste Reemplazar en el caso equivocado?
Mike Kwan
1
Voto a favor para negar el efecto de un voto en contra (es decir, inexplicable y aparentemente engañoso).
Gayot Fow
No es necesario que la cadena sea la misma que en el ejemplo dado. Por lo tanto, no puede usar reemplazar.
Confundir
Aquí hay una comparación de rendimiento, el método de reemplazo de cadenas utiliza una expresión regular bajo el capó. stackoverflow.com/questions/16228992/…
Usando StringBuilder , puede reemplazar de la siguiente manera.
StringBuilder str = new StringBuilder("manchester united (with nice players)");
int startIdx = str.indexOf("(");
int endIdx = str.indexOf(")");
str.replace(++startIdx, endIdx, "");
Primero dividiría la cadena original en una matriz de Cadena con un token "(" y la Cadena en la posición 0 de la matriz de salida es lo que le gustaría tener.
String[] output = originalString.split(" (");
String result = output[0];
Debe utilizar el método substring () del objeto String.
Aquí hay un código de ejemplo:
Supuesto: estoy asumiendo aquí que desea recuperar la cadena hasta el primer paréntesis
String strTest = "manchester united(with nice players)";
/*Get the substring from the original string, with starting index 0, and ending index as position of th first parenthesis - 1 */
String strSub = strTest.subString(0,strTest.getIndex("(")-1);
Una cadena de origen nula devolverá nulo. Una cadena de origen vacía ("") devolverá la cadena vacía. Una cadena de eliminación nula devolverá la cadena de origen. Una cadena de eliminación vacía ("") devolverá la cadena de origen.
String str = StringUtils.remove("Test remove", "remove");
System.out.println(str);
//result will be "Test"
// Java program to remove a substring from a stringpublicclassRemoveSubString{
publicstaticvoidmain(String[] args){
String master = "1,2,3,4,5";
String to_remove="3,";
String new_string = master.replace(to_remove, "");
// the above line replaces the t_remove string with blank string in master
System.out.println(master);
System.out.println(new_string);
}
}
Podrías usar replacepara arreglar tu cuerda. Lo siguiente devolverá todo antes de un "(" y también eliminará todos los espacios en blanco iniciales y finales. Si la cadena comienza con un "(", simplemente lo dejará como está.
str = "manchester united (with nice players)"
matched = str.match(/.*(?=\()/)
str.replace(matched[0].strip) if matched
Esto no parece funcionar en Java. Podría ser un derivado de ECMAscript. ¿Tiene algún método para hacer que este código funcione como está en Java?
1111161171159459134
0
Solución de Kotlin
Si está eliminando una cadena específica del final, useremoveSuffix ( Documentación )
var text = "one(two"
text = text.removeSuffix("(two") // "one"
Si el sufijo no existe en la cadena, solo devuelve el original
var text = "one(three"
text = text.removeSuffix("(two") // "one(three"
Si desea eliminar después de un carácter, use
// Each results in "one"
text = text.replaceAfter("(", "").dropLast(1) // You should check char is present before `dropLast`// or
text = text.removeRange(text.indexOf("("), text.length)
// or
text = text.replaceRange(text.indexOf("("), text.length, "")
Respuestas:
Hay varias formas de hacerlo. Si tiene la cadena que desea reemplazar, puede usar los métodos
replace
oreplaceAll
de laString
clase. Si está buscando reemplazar una subcadena, puede obtener la subcadena usando lasubstring
API.Por ejemplo
String str = "manchester united (with nice players)"; System.out.println(str.replace("(with nice players)", "")); int index = str.indexOf("("); System.out.println(str.substring(0, index));
Para reemplazar el contenido dentro de "()" puede usar:
int startIndex = str.indexOf("("); int endIndex = str.indexOf(")"); String replacement = "I AM JUST A REPLACEMENT"; String toBeReplaced = str.substring(startIndex + 1, endIndex); System.out.println(str.replace(toBeReplaced, replacement));
fuente
String toBeReplaced = str.substring(startIndex , endIndex + 1);
Reemplazo de cadena
String s = "manchester united (with nice players)"; s = s.replace(" (with nice players)", "");
Editar:
Por índice
s = s.substring(0, s.indexOf("(") - 1);
fuente
s = s.replace(...)
Utilice String.Replace ():
http://www.daniweb.com/software-development/java/threads/73139
Ejemplo:
String original = "manchester united (with nice players)"; String newString = original.replace(" (with nice players)","");
fuente
originalString.replaceFirst("[(].*?[)]", "");
https://ideone.com/jsZhSC
replaceFirst()
puede ser reemplazado porreplaceAll()
fuente
Usando StringBuilder , puede reemplazar de la siguiente manera.
StringBuilder str = new StringBuilder("manchester united (with nice players)"); int startIdx = str.indexOf("("); int endIdx = str.indexOf(")"); str.replace(++startIdx, endIdx, "");
fuente
Primero dividiría la cadena original en una matriz de Cadena con un token "(" y la Cadena en la posición 0 de la matriz de salida es lo que le gustaría tener.
String[] output = originalString.split(" ("); String result = output[0];
fuente
Debe utilizar el método substring () del objeto String.
Aquí hay un código de ejemplo:
Supuesto: estoy asumiendo aquí que desea recuperar la cadena hasta el primer paréntesis
String strTest = "manchester united(with nice players)"; /*Get the substring from the original string, with starting index 0, and ending index as position of th first parenthesis - 1 */ String strSub = strTest.subString(0,strTest.getIndex("(")-1);
fuente
Usando StringUtils de commons lang
Una cadena de origen nula devolverá nulo. Una cadena de origen vacía ("") devolverá la cadena vacía. Una cadena de eliminación nula devolverá la cadena de origen. Una cadena de eliminación vacía ("") devolverá la cadena de origen.
String str = StringUtils.remove("Test remove", "remove"); System.out.println(str); //result will be "Test"
fuente
// Java program to remove a substring from a string public class RemoveSubString { public static void main(String[] args) { String master = "1,2,3,4,5"; String to_remove="3,"; String new_string = master.replace(to_remove, ""); // the above line replaces the t_remove string with blank string in master System.out.println(master); System.out.println(new_string); } }
fuente
Si solo necesita eliminar todo después de "(", intente esto. No hace nada si no hay paréntesis.
StringUtils.substringBefore(str, "(");
Si puede haber contenido después del paréntesis final, intente esto.
String toRemove = StringUtils.substringBetween(str, "(", ")"); String result = StringUtils.remove(str, "(" + toRemove + ")");
Para eliminar los espacios finales, use
str.trim()
fuente
Podrías usar
replace
para arreglar tu cuerda. Lo siguiente devolverá todo antes de un "(" y también eliminará todos los espacios en blanco iniciales y finales. Si la cadena comienza con un "(", simplemente lo dejará como está.str = "manchester united (with nice players)" matched = str.match(/.*(?=\()/) str.replace(matched[0].strip) if matched
fuente
Solución de Kotlin
Si está eliminando una cadena específica del final, use
removeSuffix
( Documentación )var text = "one(two" text = text.removeSuffix("(two") // "one"
Si el sufijo no existe en la cadena, solo devuelve el original
var text = "one(three" text = text.removeSuffix("(two") // "one(three"
Si desea eliminar después de un carácter, use
// Each results in "one" text = text.replaceAfter("(", "").dropLast(1) // You should check char is present before `dropLast` // or text = text.removeRange(text.indexOf("("), text.length) // or text = text.replaceRange(text.indexOf("("), text.length, "")
También puede comprobar hacia fuera
removePrefix
,removeRange
,removeSurrounding
, yreplaceAfterLast
que son similaresLa lista completa está aquí: ( Documentación )
fuente