Dividir una lista de cadenas según el valor en Java

klabbaparn

Lo que quiero hacer es dividir una matriz de cadenas, cuando los primeros 6 caracteres de la cadena son ceros ("000000") o cuando todos los dígitos de la cadena son ceros. Limitarse a 6 caracteres no será muy dinámico.

Obtuve este código y hace lo que quiero lograr.

import java.util.*;
public class Main
{
    public static void main(String[] args) {
            ArrayList<String> unsplitted = new ArrayList<String>();
  
            unsplitted.add("000000: this_should_go_into_first_array");
            unsplitted.add("000234: something1");
            unsplitted.add("0000ff: something2");
            unsplitted.add("000111: something3");
            unsplitted.add("000051: something4");
            unsplitted.add("007543: something5");
            unsplitted.add("000000: and_this_should_go_into_second_array");
            unsplitted.add("005612: something7");
            unsplitted.add("005712: something8");
  
            System.out.println("Unsplitted list: "+ unsplitted);

            List<String> arrlist1 = unsplitted.subList(0, 6);
            List<String> arrlist2 = unsplitted.subList(6, unsplitted.size());
  
            System.out.println("Sublist of arrlist1: "+ arrlist1);
            System.out.println("Sublist of arrlist2: "+ arrlist2);
    }
}

Que imprime los resultados deseados

Sublist of arrlist1: [000000: this_should_go_into_first_array, 000234: something1, 0000ff: something2, 000111: something3, 000051: something4, 007543: somethi
ng5]                                                                                                                                                          
Sublist of arrlist2: [000000: and_this_should_go_into_second_array, 005612: something7, 005712: something8]

Sin embargo, no conozco los índices de los ceros de antemano, entonces, ¿cómo puedo lograr el mismo resultado al encontrar los ceros dinámicamente?

Silvinus

Simplemente puede iterar en su matriz y crear un "depósito" cada vez que detecte su cadena 000000:

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

    unsplitted.add("000000: this_should_go_into_first_array");
    unsplitted.add("000234: something1");
    unsplitted.add("0000ff: something2");
    unsplitted.add("000111: something3");
    unsplitted.add("000051: something4");
    unsplitted.add("007543: something5");
    unsplitted.add("000000: and_this_should_go_into_second_array");
    unsplitted.add("005612: something7");
    unsplitted.add("005712: something8");

    List<List<String>> results = new ArrayList<>();
    unsplitted.forEach(w -> {
        if(w.startsWith("000000") || results.isEmpty()) {
            // no bucket or detect 000000
            List<String> bucket = new ArrayList<>();
            bucket.add(w);
            results.add(bucket);
        }
        else {
            // not contains 00000 put the value in the last bucket
            results.get(results.size() - 1).add(w);
        }
    });

    results.forEach(w -> {
        System.out.println("Sublist " + w);
    });

¿Es el resultado que esperabas?

El resultado :

Sublist [000000: this_should_go_into_first_array, 000234: something1, 0000ff: something2, 000111: something3, 000051: something4, 007543: something5]
Sublist [000000: and_this_should_go_into_second_array, 005612: something7, 005712: something8]

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Python: dividir la cadena en una lista según el valor de la tupla dict

¿Cómo puedo dividir una lista de cadenas según la cantidad y el nombre?

¿Cómo dividir cadenas según una lista de glosarios?

Dividir una lista de cadenas según palabras específicas

¿Cómo dividir una lista de tuplas según el valor mínimo de cada tupla?

¿Cómo dividir una lista de tuplas según el valor mínimo de cada tupla?

Ordenar una lista de matrices según el valor de los objetos en otra lista de matrices en Java

dividir lista en sublistas según el valor

¿Cómo dividir un marco de datos de cadenas en varias columnas según una lista de índices con pandas?

¿Cómo dividir un marco de datos de cadenas en varias columnas según una lista de índices con pandas?

¿Cómo dividir el valor de entrada según el separador y empujarlos en una matriz?

Dividir la lista en varias listas según el valor de los elementos

Ordenar la lista de cadenas según su valor en el mapa dado

Dividir artículo en N artículo según el valor de una propiedad

¿Dividir el valor bigdecimal en una lista de objetos usando java 8?

Filtrar una lista de cadenas según el contenido

Limite las ocurrencias de cadenas en una lista según el prefijo

¿Cómo dividir un CSV según el valor de una columna en PowerShell?

Explotar / dividir una fila en varias filas según el valor de la columna

¿Cómo dividir un CSV según el valor de una columna en PowerShell?

¿Cómo dividir un CSV según el valor de una columna en PowerShell?

Cómo dividir una cadena en dos cadenas según el delimitador en un marco de datos

Cómo dividir una cadena en dos cadenas según el delimitador en un marco de datos

Dividir una cadena en una lista de cadenas en Go

Dividir el marco de datos según el valor en la columna: recorrer la lista de identificadores

¿Cómo transformar una lista de objetos en una lista de cadenas basada en el valor de una propiedad en Java?

dividir la lista de cadenas en una sublista en Python

Dividir varias cadenas en una lista de objetos en C #

Agregue diferentes cadenas a una lista de cadenas según su posición en la lista

TOP Lista

CalienteEtiquetas

Archivo