2012-01-01 14 views
48

Quiero eliminar una parte de la cadena de un personaje, es decir:extirpar parte de la cadena

cadena original: Manchester United (con jugadores buenos)

Futuro resultado: Manchester United

+2

¿Cómo sabe qué parte conservar y qué parte desechar? Sin saber eso, es imposible responder a tu pregunta? – Raedwald

Respuesta

113

Hay varias maneras de hacerlo. Si tiene la cadena que desea reemplazar, puede utilizar los métodos replace o replaceAll de la clase String. Si está buscando reemplazar una subcadena, puede obtener la subcadena usando la API substring.

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 "()" se puede utilizar:

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)); 
+0

algun tipo de error debe ser 'String toBeReplaced = str.substring (startIndex, endIndex + 1);' – Yeung

+0

tambien valdria la pena eliminar el espacio: System.out.println (str. replace ("(con buenos jugadores)", ""); – kiedysktos

17

Uso 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)",""); 
+0

¿Alguna razón en particular por la que se votó? –

+0

Yo no era el que menospreciaba pero quizás porque usted puso Reemplazar en el caso equivocado? –

+0

Gracias Mike. Lo corregiré. –

25

cadena de reemplazo

String s = "manchester united (with nice players)"; 
s = s.replace(" (with nice players)", ""); 

Editar:

Por Índice de

s = s.substring(0, s.indexOf("(") - 1); 
+3

no se olvide 's = s.replace (...)' – dasblinkenlight

+0

Olvidé eso gracias. Voy a actualizar. –

+0

No puede ser, porque lo que está entre paréntesis puede cambiar. Necesito cambiar la cadena del caracter ( – zmki

5

se debe utilizar el método() del objeto String subcadena.

Aquí es un ejemplo de código:

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); 
6

lo haría en un primer momento dividir 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]; 
0

usted podría utilizar para replace arregla tu cadena A continuación, todo vuelve antes de que un "(" y también despojar a todos los espacios iniciales y finales. Si la cadena comienza con un "(" se acaba de dejarlo como está.

str = "manchester united (with nice players)" 
matched = str.match(/.*(?=\()/) 
str.replace(matched[0].strip) if matched 
+0

Esto no parece funcionar en Java. Podría ser derivado de ECMAscript. ¿Tiene algún método para hacer que este código funcione como está en Java? – 1111161171159459134

5

Usando StringBuilder, puede reemplace 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, ""); 
0
// 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); 

    } 
} 
1

Using StringUtils from commons lang

Una cadena de origen nula devolverá un valor nulo. Una cadena fuente vacía ("") devolverá la cadena vacía. Una cadena de eliminación nula devolverá la cadena fuente. Una cadena de eliminación vacía ("") devolverá la cadena fuente.

String str = StringUtils.remove("Test remove", "remove"); 
System.out.println(str); 
//result will be "Test" 
Cuestiones relacionadas