Olá, estou fazendo um programa que pega um arquivo texto, neste arquivo ele separa os campos assim
qlqrcoisa-nomedapessoa
simbolo talcoisa ano 1987
no caso eu preciso extrair o nome da pessoa q vem na primeira linha depois de um traço, na segunda linha o simbolo q vem seguido de simbolo e o ano q vem seguido de ano.
Ele pula uma linha a cada registro escrito. Eu queria fazer um programa q listasse todos os nomesdepessoas de ano 1987 por exemplo.
Nao estou pedindo codigo pronto, soh uma ideia de como fazer, vlw
uma ideia seria vc ler todo o arquivo e depois ir seperando com o StringTokenizer.
uma vez precisei fazer algo parecido com isso se quiser coloco uns pedaços do codigo.
eric_clapton-wonderful_tonight
This is singer / songwritery, soft rock song that is tender and calming. It features piano, acoustic guitar, male vocal, a nice male vocal solo, and emotional, vocal harmonies vocals. It is a song with a slow tempo and with low energy that you might like listen to while going to sleep.
cada musica eh separada por nomedocantor-nomedamusica, depois This is tipodamusica that is estadodeespirito, seguido de outras coisas q nao irei utilizar e pula uma linha em cada registro.
preciso pegar e separar nomedocantor(erick clapton), nomedamusica(wonderfultonight), tipodamusica(singer songwritery) e estadodeespirito(tender and calming).
dai o programa diria para vc escolher o estadodeespirito q listava o nome das musicas que batem com o estado de espirito.
esse metodo de stringtokenizer eu posso usar varios tokens diferentes?
Isso mesmo, bela sugestão do Lemuras…
É dificil encontrar alguem que conheça tal classe…
Vou dar um exemplo de utilização dos métodos da StringTokenizer para você…
String texto = "Olá_companheiro";
StringTokenizer st = new StringTokenizer(texto, "_", false);
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
A StringTokenaizer trabalha com base em “pedaços” (como o nome sugere)
Para dividir a String propriamente dita ele leva como base algum Delimitador…
Olhe o construtor de tal…
Ele possui 3 sobrecargas…
No exemplo utilizei o mais complexos a fins didáticos, pois é o mais fácil de entender…
Nele obviamente passo o texto a ser “Analisado”
depois passo um conjunto de caracteres para ser utilizado como delimitador…
e logo apos passo um booleano para dizer se vai ou não ser inserido nos tokes os delimitadores…
Para percorrer uma tokenaizer é bem parecido com a estrutura de um ResultSet…
Se você ja estudou JDBC, entendera rapidinho…
Neste exemplo percorri da seguinte maneira…
Enquanto tinha token…
eu invoco o metodo nextToken que remove o “proximo” token da estrutura e me retorna o mesmo…
A documentação da classe StringTokenizer diz que sua utilização é desencorajada em códigos novos, ela só é mantida por questões de compatibilidade, é uma classe antiga.
Para quem procura a funcionalidade de StringTokenizer, agora é recomendado usar o método split, ou o pacote java.util.regex
A documentação da classe StringTokenizer diz que sua utilização é desencorajada em códigos novos, ela só é mantida por questões de compatibilidade, é uma classe antiga.
Para quem procura a funcionalidade de StringTokenizer, agora é recomendado usar o método split, ou o pacote java.util.regex
[/quote]
Olha pessoal obrigado pela resposta rapida, acabei conseguindo fazer tudo pelo metodo split, soh peguei o txt joguei numa string e fui lendo por linha e pegando pelo split, acabei deixando o trabalho da facul pra ultima hora, mas consegui implementar pelo menos. E pesquisando descobri isso tbm, q muita gente ja nao usa o stringtokenizer