Necesito dividir una base de cadena en delimitador -
y .
. A continuación se muestran mi salida deseada.
AA.BB-CC-DD.zip
->
AA
BB
CC
DD
zip
pero mi siguiente código no funciona.
private void getId(String pdfName){
String[]tokens = pdfName.split("-\.");
}
Respuestas
253 para la respuesta № 1Creo que necesitas incluir el operador de expresiones regulares O:
String[]tokens = pdfName.split("-|\.");
Lo que tengas coincidirá con "-." No un "-" o una "."
43 para la respuesta № 2
Prueba este regex "[-.]+"
. El + después trata los caracteres delimitadores consecutivos como uno solo. Eliminar más si no quieres esto.
23 para la respuesta № 3
Puede usar la expresión regular "W". Esto coincide con cualquier carácter que no sea de palabra. La línea requerida sería:
String[] tokens=pdfName.split("\W");
11 para la respuesta № 4
Utilizando Guayaba usted podría hacer esto:
Iterable<String> tokens = Splitter.on(CharMatcher.anyOf("-.")).split(pdfName);
10 para la respuesta № 5
La cadena que das split
es la forma de cadena de una expresión regular, por lo que:
private void getId(String pdfName){
String[]tokens = pdfName.split("[\-.]");
}
Eso significa dividir en cualquier personaje en el []
(tenemos que escapar -
con una barra invertida porque es especial por dentro []
; y por supuesto tenemos que escapar de la barra invertida porque esto es una cadena). (A la inversa, .
normalmente es especial pero no es especial por dentro []
.)
3 para la respuesta № 6
Yo usaría Apache Commons:
importar org.apache.commons.lang3.StringUtils;
private void getId(String pdfName){
String[] tokens = StringUtils.split(pdfName, "-.");
}
Se dividirá en cualquiera de los separadores especificados, a diferencia de StringUtils.splitByWholeSeparator(str, separator)
que utiliza la cadena completa como separador
2 para la respuesta № 7
Para dos secuencias de caracteres como delimitadores "AND" y "OR", se debe trabajar. No te olvides de recortar durante el uso.
String text ="ISTANBUL AND NEW YORK AND PARIS OR TOKYO AND MOSCOW";
String[] cities = text.split("AND|OR");
Resultado: cities = {"ISTANBUL", "NEW YORK", "PARIS", "TOKYO", "MOSCOW"}
0 para la respuesta № 8
También puede especificar una expresión regular como argumento en el método split () ... vea el siguiente ejemplo ...
private void getId(String pdfName){
String[]tokens = pdfName.split("-|\.");
}
0 para la respuesta № 9
Es mejor usar algo como esto:
s.split("[\s\-\.\"\?\,\_\@]+");
Han añadido algunos otros personajes como muestra. Esta es la forma más segura de usar, porque la forma .
y "
se trata
0 para la respuesta № 10
s.trim().split("[\W]+")
Deberia trabajar.
-1 para la respuesta № 11
Si sabe que la picadura estará siempre en el mismo formato, primero divida la cadena basándose en .
y almacenar la cadena en el primer índice en una variable. Luego divide la cadena en el segundo índice basado en -
y almacene los índices 0, 1 y 2. Finalmente, divida el índice 2 de la matriz anterior en función de .
y deberías haber obtenido todos los campos relevantes.
Consulte el siguiente fragmento de código:
String[] tmp = pdfName.split(".");
String val1 = tmp[0];
tmp = tmp[1].split("-");
String val2 = tmp[0];
...