[Dúvida] Contagem de substrings iguais em um arquivo txt  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
skindedo
Entusiasta Java
[Avatar]

Membro desde: 28/04/2008 09:19:19
Mensagens: 24
Localização: Cuiabá - MT
Offline

gente .. preciso de uma idéia ..
tenho um arquivo txt .. ex:

111112222233333444445555566666
111112222233333444445555566666
222222222233333444445555566666
222222222233333444445555566666
111112222233333444445555566666
333332222233333444445555566666
111112222233333444445555566666

-----------------------------------------------
neste arquivo quero usar os 5 primeiros dígitos , utilizei substring ..
agora .. eu quero fazer as contagens dos 5 primeiros digitos , que são iguais
ficaria assim no caso

11111 = 4
22222 = 2
33333 = 1

será que consegui me expressar direito?

Vlw
[MSN]
rubinelli
JavaEvangelist
[Avatar]

Membro desde: 26/04/2005 11:18:25
Mensagens: 469
Offline

Use um HashMap<String,Integer>. Para cada linha que você recupera, procure por uma entrada no map usando sua string de 5 posições como chave. Se houver, atualize a entrada acrescentando 1 ao número. Se não, insira uma entrada nova com o valor um.
[WWW]
skindedo
Entusiasta Java
[Avatar]

Membro desde: 28/04/2008 09:19:19
Mensagens: 24
Localização: Cuiabá - MT
Offline

rubinelli wrote:Use um HashMap<String,Integer>. Para cada linha que você recupera, procure por uma entrada no map usando sua string de 5 posições como chave. Se houver, atualize a entrada acrescentando 1 ao número. Se não, insira uma entrada nova com o valor um.



no meu aqui .. eu estava fazendo o seguinte ..




.. quando eu queria mostrar os 5 primeiros .. no caso eu fazia assim:






Vou dar uma procurada sobre o hashmap .. pois desconheço do mesmo ...
Qualquer ideia ae gente postem por favor...

This message was edited 4 times. Last update was at 07/01/2009 09:53:28

[MSN]
skindedo
Entusiasta Java
[Avatar]

Membro desde: 28/04/2008 09:19:19
Mensagens: 24
Localização: Cuiabá - MT
Offline

Bom gente .. ja comecei aqui .. estou usando o netbeans (os arquivos estão em anexo).
Seguinte .. ja encontrei um probleminha aqui.. pelo que estou vendo terei que usar arrays .. e gostaria de algumas idéias ae ..
no arquivo .txt (em anexo) , ha alguns numeros que podem se repetir ... [exemplo : ol concessora (getIdOlConcessao) ] ..
no caso .. na construção do novo arquivo .txt , esse número não poderia se repetir .. no caso , entraria a quantidade também (getQuantidade) ..
procurei exemplos de Hashmap , mas não achei uma explicação que fosse parecida com o que eu estou procurando.. se alguem puder me dar um exemplo eu agradecerei.

Ps: eu quero uma maneira de criar este arquivo txt , que seja a mais rápida(não sei se é só com o uso do hashmap que é possível) .. pois o arquivo .txt que a aplicação irá ler é bem grande (tem cerca de umas 500.000 linhas .. )

Vlw ae gente... se alguém não entendeu alguma coisa é só avisar que vou explicando..
 Nome do arquivo aphelp.rar [Disk] Download
 Descrição
 Tamanho 2 Kbytes
 Baixado:  37 vez(es)

[MSN]
sf.marcius
JavaGuru
[Avatar]

Membro desde: 11/01/2007 05:58:55
Mensagens: 200
Offline

opa, e aí cara...

acredito que seja mais ou menos isso que tu queira...



a saida desse app é "[3333=1, 2222=2, 1111=4]"

feito

"Software engineering is a race between programmers, striving to build bigger & better idiot-proof programs, and the Universe, striving to build bigger and better idiots. So far, the Universe is winning."
skindedo
Entusiasta Java
[Avatar]

Membro desde: 28/04/2008 09:19:19
Mensagens: 24
Localização: Cuiabá - MT
Offline

sf.marcius wrote:opa, e aí cara...

acredito que seja mais ou menos isso que tu queira...



a saida desse app é "[3333=1, 2222=2, 1111=4]"

feito



Opa .. é realmente + - isso que eu quero fazer ..
seguinte .. para ele mostrar apenas os valores de cont eu uso o System.out.println(mapaDeContagens.values()) certo?!? ..
e para mostrar apenas os valores de primeirosCinco ?

Vlw
[MSN]
sf.marcius
JavaGuru
[Avatar]

Membro desde: 11/01/2007 05:58:55
Mensagens: 200
Offline

opa,

para pegar o conjunto de valores (contagens)



para pegar o conjunto de chaves (primeirosCinco)



para pegar o conjunto de tuplas (primeirosCinco, contagem)



para pegar a contagem de linhas que começam por "11111", por ex:



[]s

This message was edited 1 time. Last update was at 07/01/2009 09:26:55


"Software engineering is a race between programmers, striving to build bigger & better idiot-proof programs, and the Universe, striving to build bigger and better idiots. So far, the Universe is winning."
skindedo
Entusiasta Java
[Avatar]

Membro desde: 28/04/2008 09:19:19
Mensagens: 24
Localização: Cuiabá - MT
Offline

Seguinte .. para eu fazer a leitura das linhas do arquivo .txt eu estou utilizando o Scanner e o file..

ficou + - assim..




como que vou fazer para implementar naquela parte utilizando o Scanner?
[MSN]
sf.marcius
JavaGuru
[Avatar]

Membro desde: 11/01/2007 05:58:55
Mensagens: 200
Offline

vc quer um método para ler arquivos-texto?

aqui tem um:


umas dicas...
vc criou uma classe de nome LerArquivo. Geralmente ocorre o seguinte. Se aquilo que a gente quer é uma entidade (Substantivo) a gente cria uma classe. Já se é uma ação (Verbo), então, cria-se um método.

Então eu criaria uma Classe de nome ArquivoTexto, por ex. e dentro dessa classe eu definiria o método "lerArquivo()", que nada mais é que uma ação que a entidade "ArquivoTexto" executa

feito!

This message was edited 1 time. Last update was at 07/01/2009 10:48:30


"Software engineering is a race between programmers, striving to build bigger & better idiot-proof programs, and the Universe, striving to build bigger and better idiots. So far, the Universe is winning."
skindedo
Entusiasta Java
[Avatar]

Membro desde: 28/04/2008 09:19:19
Mensagens: 24
Localização: Cuiabá - MT
Offline

sf.marcius wrote:vc quer um método para ler arquivos-texto?

aqui tem um:


umas dicas...
vc criou uma classe de nome LerArquivo. Geralmente ocorre o seguinte. Se aquilo que a gente quer é uma entidade (Substantivo) a gente cria uma classe. Já se é uma ação (Verbo), então, cria-se um método.

Então eu criaria uma Classe de nome ArquivoTexto, por ex. e dentro dessa classe eu definiria o método "lerArquivo()", que nada mais é que uma ação que a entidade "ArquivoTexto" executa

feito!


Sim .. isso foi o que eu fiz ... é por que o método de ler o arquivo estava dentro da classe .. dai eu copiei e colei ele em uma nova classe para limpá-lo só deixando o Scanner para postar aqui .. mas na aplicação mesmo ele está como método =)

PS: cara por enquanto muito obrigado .. ta dando certo aqui =) vlw msm

This message was edited 1 time. Last update was at 07/01/2009 11:11:30

[MSN]
marcobiscaro2112
JWizard

Membro desde: 01/12/2008 11:56:04
Mensagens: 2408
Localização: São Paulo - SP
Offline

Pode olhar isso se quiser:
http://www.guj.com.br/posts/list/15/114205.java#617636

Marco Biscaro.

Seja livre!

Você sabia que provavelmente há milhares de arquivos duplicados no seu computador?

Ei... você está usando DefaultTableModel no seu projeto?? Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team