Estou começando agora com recursividade, logo se alguém puder ajudar serei muito grato!
Eu tenho a String
abaixo:
field1: typeA
field2: typeA
field3: typeB
group1:
fieldA: typeA
fieldB: typeB
subGroup1:
fieldX: typeB
fieldY: typeB
fieldC: typeC
field4: typeA
group2:
fieldA: typeB
subGroup1:
fieldX: typeA
fieldY: typeA
fieldB: typeA
fieldC: typeC
field5: typeC
field6: typeD
Note que eu posso ter grupos dentro de grupos dentro de grupos, etc. logo eu acredito que recursividade é obrigatória.
Note que o espaço no início de cada linha determina se o campo pertence ao grupo ou não.
Eu gostaria de ter um método que retorna uma LinkedHashMap<String, Object>
, onde o Object pode ser uma String
indicando um campo (e não um grupo) ou outra LinkedHashMap<String, Object>
indicando um grupo (e não um campo).
Eu tentei mas fracassei Estou estudando recursividade para ver se um dia consigo fazer isso.
Para ajudar alguém que possa ajudar, abaixo o código:
public static void main(String[] args) {
String text = String.join("\n",
"field1: typeA",
"field2: typeA",
"field3: typeB",
"group1:",
" fieldA: typeA",
" fieldB: typeB",
" subGroup1:",
" fieldX: typeB",
" fieldY: typeB",
" fieldC: typeC",
"field4: typeA",
"group2:",
" fieldA: typeB",
" subGroup1:",
" fieldX: typeA",
" fieldY: typeA",
" fieldB: typeA",
" fieldC: typeC",
"field5: typeC",
"field6: typeD",
"");
Map<String, Object> solution = doIt(text);
System.out.println(solution);
}
private static LinkedHashMap<String, Object> doIt(String text) {
// solution goes here...
return null;
}
}