Gostaria de saber como percorrer uma string que está dentro de um Array (saber a posição dos sub-indices)
String[] estrofes = {"As armas e os Barões assinalados \n Que da Ocidental praia Lusitana\n", "Por mares nunca de antes navegados\n Passaram ainda além da Taprobana,\n Em perigos e guerras esforçados\n
Mais do que prometia a força humana,\n E entre gente remota edificaram Novo Reino,\n que tanto sublimaram;\n", "E também as memórias gloriosas\nDaqueles Reis que foram dilatando\nA Fé, o Império, e as terras viciosas\nDe África e de Ásia andaram devastando,\nE aqueles que por obras valorosos\nSe vão da lei da Morte libertando,\nCantando espalharei por toda parte,\nSe a tanto me ajudar o engenho e arte\n"}
Está retornando o registro inteiro e os listando, eu gostaria analisar o elemento que está dentro do array, já tentei o método split, porém ele não está ocasionando a quebra nem me permitindo acessar esse array for do laço.
Quero obter o resultado de ter arrays, 1 só com as informações das estrofes, enquanto outro n arrays em relação ao número de registros, com esses arrays subdividindo as informações do registro do 1° array, algo que o segundo array teria o seguinte design
versos[1] ="As armas e os Barões assinalados"
versos[2] = "Que da Ocidental praia Lusitana"
versos[3] = "Por mares nunca de antes navegados"
versos[4] = "Passaram ainda além da Taprobana"
versos[5] = "Em perigos e guerras esforçados"
versos[6] = "Mais do que prometia a força humana"
versos[7] = "E entre gente remota edificaram Novo Reino"
versos[8] = "que tanto sublimaram;"
Notei que o array original está dividido em estrofes.
Cada estrofe está “dividida” com uma quebra de linha (\n)
Portanto, mantenha a minha sugestão e, depois, use o split para quebrar a estrofe em versos.
for(String estrofe : estrofes) {
String[] versos = estrofe.split("\\r?\\n"); //Precisa do \\r? para permitir a quebra na quebra de linha
for(String verso : versos) {
System.out.println(verso);
}
}
@darlan_machado ele está quebrando, mas gostaria de acessar esses vetores ou ter o retorno de ambos, de forma mimificada está assim.
ArrayList<String> estrofes = new ArrayList<String> ();
estrofes.add("As armas e os Barões assinalados \n Que da Ocidental praia Lusitana\n "
+ "Por mares nunca de antes navegados\n Passaram ainda além da Taprobana "
+ "Em perigos e guerras esforçados\n Mais do que prometia a força humana"
+ "E entre gente remota edificaram Novo Reino,\n que tanto sublimaram;\n"
+ "E também as memórias gloriosas\nDaqueles Reis que foram dilatando\nA Fé, o Império, e as terras viciosas\nDe África e de Ásia andaram devastando\n "
+ "E aqueles que por obras valorosos\nSe vão da lei da Morte libertando,"
+ "\nCantando espalharei por toda parte,\nSe a tanto me ajudar o engenho e arte\n");
ArrayList<String> versos = new ArrayList<String> ();
for(int x = 0; x < estrofes.size(); x++) {
String[] aa = estrofes.split("\\r?\\n");
for(String verso : aa) {
versos.add(verso);
}
}
// System.out.println(estrofe[1]);
// System.out.print(verso[1]);
}