Separar cadena con split y almacenar los datos solo en variables necesarias

publicado por: Anonymous

Tengo el siguiente código:

String cadena=JTextField.getText();
String[] split=cadena.split("\s");
String p1=split[0];
String p2=split[1];
String p3=split[2];

Como ven, el código separa la cadena en 3 palabras que son almacenadas en las variables p1, p2, p3.

El problema es que solo funcionará si he escrito 3 palabras en el JTextField, si escribo solo 2 palabras o 4 palabras me mandará un error.

Quisiera que si escribo(en el JTextField) una cadena con X cantidad de palabras en ella, dichas palabras se almacenen una por una en una variable distinta. De modo que no estoy limitado a escribir solo 3 palabras, sino todas las que necesite, incluyendo si escribo solo una palabra.

solución

No se puede hacer con repetidos String palabraN = split[x];

Deberías hacer uso de una lista simplemente enlazada, o del ArrayList<> que son prácticamente lo mismo.

Sería algo como:

String cadena=JTextField.getText();

String[ ]split=cadena.split("\s");

ArrayList<String> pal = new ArrayList<>();

for(int i = 0; i < split.length; i++){ // no recuerdo si es length o length()
    pal.add(split[i]);
}

Queda en ti convertirlo a algo más eficiente como un foreach, buscar ejemplos de los vector, arraylist y list

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *