¿Cuál es la forma más sencilla de obtener la última palabra de una cadena en Java? Puede suponer que no hay signos de puntuación (solo caracteres alfabéticos y espacios en blanco).Java: forma más sencilla de obtener la última palabra en una cadena
Respuesta
String test = "This is a sentence";
String lastWord = test.substring(test.lastIndexOf(" ")+1);
Necesita un +1 allí y falla en una sola palabra. – marcog
Una línea es buena ya que la usaré en el código de plantilla de Velocity. Podría combinarse con una expresión regular para dar cuenta de otros personajes como la solución de JST. – Muhd
En realidad, esto es mejor, ya representa una sola palabra: Cadena lastWord = test.substring (test.lastIndexOf ("") +1); – Muhd
String testString = "This is a sentence";
String[] parts = testString.split(" ");
String lastWord = parts[parts.length - 1];
System.out.println(lastWord); // "sentence"
Esta es la solución que probablemente habría ideado por mi cuenta, no está mal, pero un one-liner sería mejor. – Muhd
Cuando dices "más rápido", ¿te refieres al código más corto o más rápido de ejecutar? Esto podría convertirse en un trazador de líneas, pero no se ejecutaría más rápido y sería mucho más difícil de leer. –
No dije "más rápido", dije "más simple", con lo cual quise decir una combinación de brevedad y facilidad de comprensión. – Muhd
Si otros espacios en blanco son posibles, entonces te gustaría:
testString.split("\\s+");
Usted puede hacer eso con StringUtils
(de Apache Commons Lang). Evita la magia de índice, por lo que es más fácil de entender. Desafortunadamente substringAfterLast
devuelve cadena vacía cuando no hay separador en la cadena de entrada, por lo que necesitamos la instrucción if
para ese caso.
public static String getLastWord(String input) {
String wordSeparator = " ";
boolean inputIsOnlyOneWord = !StringUtils.contains(input, wordSeparator);
if (inputIsOnlyOneWord) {
return input;
}
return StringUtils.substringAfterLast(input, wordSeparator);
}
Aquí es una manera de hacerlo utilizando String
's incorporado en las capacidades de expresiones regulares:
String lastWord = sentence.replaceAll("^.*?(\\w+)\\W*$", "$1");
La idea es hacer coincidir toda la cadena de ^
a $
, la captura de la última secuencia de \w+
en un grupo de captura 1, y reemplace la oración completa con $1
.
- 1. Forma más sencilla de cargar html correctamente desde la página web en una cadena en Java
- 2. cadena transversal C: obtenga la última palabra de una cadena
- 3. Reemplazar la última palabra en la cadena
- 4. forma más sencilla de consulta XML en Java
- 5. ¿Extraer la última palabra en oración/cadena?
- 6. Recortar una cadena en java para obtener la primera palabra
- 7. ¿Cuál es la forma más sencilla de agregar uno a una cadena binaria en Perl?
- 8. obteniendo la última palabra en una cadena tokenizada en groovy
- 9. Obtener la última palabra de un NSString
- 10. ¿Cuál es la forma más sencilla de actualizar la plataforma haskell a la última?
- 11. forma más corta de obtener el primer carácter de cada palabra en una cadena
- 12. Symfony2: forma más sencilla de obtener las direcciones URL REST
- 13. Seleccionar una última palabra de una cadena en xslt
- 14. Extracto de la última palabra de una cadena usando C#
- 15. ¿Forma más sencilla de construir una cadena mediante la interpolación de valores en un patrón Regex?
- 16. Instrucción SQL para encontrar la última palabra en la cadena
- 17. ¿Cuál es la forma más sencilla de intercambiar char en una cadena con Python?
- 18. ¿Una forma más sencilla de verificar los parámetros?
- 19. forma más sencilla de analizar una fecha en Javascript
- 20. Forma más sencilla de crear un HWND
- 21. VBScript: ¿Cuál es la forma más sencilla de formatear una cadena?
- 22. ¿Cuál es la forma más sencilla de obtener resultados de scripts de Python en la web?
- 23. ¿Cómo obtener los primeros x caracteres de una cadena, sin cortar la última palabra?
- 24. Eliminar la primera palabra de una cadena en Java
- 25. cómo eliminar la última palabra de la cadena usando JavaScript
- 26. Forma más sencilla de obtener una aplicación web Lisp "hello world" en funcionamiento
- 27. ¿Cómo obtener la última parte de una cadena?
- 28. ¿Cuál es la forma más sencilla de crear una ventana con forma en wxPython?
- 29. forma más sencilla de leer JSON desde una URL en Java
- 30. ¿Cuál es la forma más rápida de verificar si una palabra de una cadena está en otra cadena?
relacionada: http://stackoverflow.com/questions/1181969/java-get-last-element-after-split – GreenMatt
título dice "más rápido", preguntas pide "más simple". Por favor aclara – z5h
Lo más rápido y simple para codificar y leer. El tiempo de ejecución es irrelevante. Por otro lado, tener una redacción diferente es mejor para fines de búsqueda, aunque la discrepancia no fue intencional. – Muhd