Valor de cadena separado por dos puntos para varias líneas.
Quiero separar una cadena por dos puntos y almacenarla en un par clave-valor en un mapa, a continuación se muestra el valor de la cadena:
String s = "1: AFXSD \n" +
" 2: TNBLO \n" +
" 13: ONHDSAD \n" +
" 51: NONREF \n" +
" 25: 213213234 \n" +
" 32: ASD3123,01 \n" +
" 5: /ASDAS321 abc \n" +
" 91360070 AVENIDA ENGENHEIRO ARY DE ABREU LIMA N 900 PORTO ALEGRE\n" +
" BRASIL \n" +
" 52A: ASDSADDASSA ";
He intentado dividirlo mediante el método split
con dos puntos, pero no puedo unirlo si el valor está en varias filas, en dos puntos 5:
tiene valor en varias filas, por lo que necesito agregar todos los valores en el valor de clave 5 con múltiples líneas como se muestra en el formato, los dos puntos 5:
no deben estar en una sola línea.
El código que he intentado.
Aquí la cadena s
proviene de ma.getText(row, 2).trim()
“`java
int row = 11;
String a = "";
String b = "";
Map<string, string=""> mp1 = new LinkedHashMap<>();
ArrayList<string> al = new ArrayList<>();
StringBuilder sb = new StringBuilder();
int c = 0;
while(!ma.getText(row, 2).trim().equals("")) {
String s = ma.getText(row, 2).trim();
if (s.contains(":")) {
a = s.split(":")[0];
b = s.split(":")[1];
// mp1.put(s.split(":")[0], s.split(":")[1]);
al.add(s);
c++;
} else {
sb.append(al.get(c)).append(s);
al.add(sb.toString());
sb = null;
}
mp1.put(a, b);
row++;
}
“`</string,>
davy.ai
Para separar la cadena dada por dos puntos y almacenarlos en pares clave-valor en un mapa, podemos seguir los siguientes pasos:
Aquí está la implementación del código Java de los pasos anteriores:
Podemos llamar a este método como
separateStringByKeyValue(s)
y pasar la cadena dadas
como parámetro para obtener el mapa resultante con los pares clave-valor.</string,></string,>