varias superponer studio modificar lineas graficos graficas ejes scala

scala - superponer - ¿Cómo dividir la cadena con cadenas vacías finales en el resultado?



superponer graficas en r (2)

Estoy un poco confundido acerca del comportamiento de la división de cadenas de Scala, ya que no funciona de manera consistente y faltan algunos elementos de la lista. Por ejemplo, si tengo una cadena CSV con 4 columnas y 1 elemento faltante.

"elem1, elem2,,elem 4".split(",") = List("elem1", "elem2", "", "elem4")

¡Genial! Eso es lo que yo esperaría.

Por otro lado, si faltan tanto el elemento 3 como el 4, entonces:

"elem1, elem2,,".split(",") = List("elem1", "elem2")

Mientras que yo esperaría que vuelva

"elem1, elem2,,".split(",") = List("elem1", "elem2", "", "")

¿Me estoy perdiendo de algo?


Como Peter mencionó en su respuesta, "string".split() , tanto en Java como en Scala, no devuelve cadenas vacías al final por defecto.

Sin embargo, puede especificar que devuelva cadenas vacías al final pasando un segundo parámetro, como este:

String s = "elem1,elem2,,"; String[] tokens = s.split(",", -1);

Y eso te dará el resultado esperado.

Puedes encontrar el documento de Java relacionado aquí .


Creo que los espacios vacíos finales no se incluyen en un valor de retorno.

JavaDoc para split(String regex) dice: "Este método funciona como si invocara el método de split dos argumentos con la expresión dada y un argumento de límite de cero. Por lo tanto, las cadenas vacías finales no se incluyen en la matriz resultante.

Por lo tanto, en su caso, la split(String regex, int limit) debe usarse para obtener una cadena vacía al final en un valor de retorno.