Eliminar todo después de una parte de una cadena

Tengo una cuerda que se construye de tres partes. La palabra que quiero que la cadena sea (cambia), una parte de separación (no cambia) y la última parte que cambia. Quiero eliminar la parte de separación y la parte final. La parte de separación es "-" así que lo que me pregunto es si hay una manera de eliminar todo después de una parte de la cadena.

Un ejemplo de este escenario sería si quería cambiar esto: "Desbordamiento de pila – Un lugar para preguntar cosas" en esto: "Desbordamiento de pila". Cualquier ayuda es apreciada!

Por ejemplo, usted podría hacer:

String result = input.split("-")[0]; 

o

 String result = input.substring(0, input.indexOf("-")); 

(Y agregar el manejo de errores relevante)

El apache commons StringUtils proporciona un método substringBefore

StringUtils.substringBefore("Stack Overflow - A place to ask stuff", " - ")

Puedes usar esto

 String substr = mysourcestring.substring(0,mysourcestring.indexOf("-")); 

SubString el programa de la muestra para todos los approches y SubString parece ser uno más rápido.

 Using builder : 54 Using Split : 252 Using Substring : 10 

A continuación se muestra el código de programa de ejemplo

  for (int count = 0; count < 1000; count++) { // For JIT } long start = System.nanoTime(); //Builder StringBuilder builder = new StringBuilder( "Stack Overflow - A place to ask stuff"); builder.delete(builder.indexOf("-"), builder.length()); System.out.println("Using builder : " + (System.nanoTime() - start) / 1000); start = System.nanoTime(); //Split String string = "Stack Overflow - A place to ask stuff"; string.split("-"); System.out.println("Using Split : " + (System.nanoTime() - start) / 1000); //SubString start = System.nanoTime(); String string1 = "Stack Overflow - A place to ask stuff"; string1.substring(0, string1.indexOf("-")); System.out.println("Using Substring : " + (System.nanoTime() - start) / 1000); return null; 

Tal vez eso es lo que usted está buscando:

 String str="Stack Overflow - A place to ask stuff"; String newStr = str.substring(0, str.indexOf("-")); 

Esto hará lo que usted necesita:

 newValue = oldValue.substring(0, oldValue.indexOf("-"); 
  • Crear una instancia de una clase abstracta en Kotlin
  • ¿Es la forma recomendada de dar formato a los números en una forma regional?
  • Cómo administrar el contenido comprimido en Android
  • Aspectj con la biblioteca de Android
  • Androide, socket, programación, atrás, router
  • ¿Es una buena práctica de programación usar campos estáticos de importación?
  • LRUCache reordenación de entrada al usar get
  • Cómo cambiar el color de texto de SlidingTabLayout?
  • javax.net.ssl.SSLPeerUnverifiedException: Nombre de host no verificado:
  • Acerca de los nuevos métodos y métodos obsoletos en las API de Android
  • StringBuilder perdió datos al convertir a String
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.