Quiero eliminar una parte de la cadena de un carácter, es decir:
Cadena de origen:
manchester united (with nice players)
Cadena de destino:
manchester united
Respuestas:
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));
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);
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)","");
originalString.replaceFirst("[(].*?[)]", "");
https://ideone.com/jsZhSC
replaceFirst()puede ser reemplazado porreplaceAll()
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);
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"
// 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);
}
}
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()
Las funciones de Apache StringUtils son nulas, vacías y no son seguras para las coincidencias
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
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, y replaceAfterLastque son similares
La lista completa está aquí: ( Documentación )