Como pegar um dado contido no terceiro campo de uma String? [Resolvido]

Oi,
não a nada que uma analise léxica (teoria) não resolva…
percorra seu texto por caracter, e onde você escontrar espaços mande quebra a linha
ou então gravar em uma variavel do espaço até a posição inicial (assim você tera 1 constante).
continue incrementando e passe para o proximo caracter, se for espaço continue incrementando ou quebrando… até encontrar a proxima letra… dai vai achar outro espaço… guarde a constante (da posicao do caracter atual até seu proximo espaço)…
assim você tera todas as “constantes” gravadas e sabera com uma comparação qual você deseja…
é trabalhoso… bem mais do que uma simples substring… mais nao tem erro…

Tchauzin!

[quote=thingol]Eu já dei o exemplo com substring (aquele com “substring (36, 56-1)” ou coisa parecida alguns posts atrás.
Agora faça a sua parte.
Pegue o arquivo que você recebeu, veja onde começam as posições, e boa sorte!
[/quote]

corretamente. Se quiserem ver o resultado executem:


public static void main(String[] args) {
        // TODO code application logic here
        
        String string1 = "010001963                       91522  91522  JOSE FRANCISCO DO NASCIMENTO                                                              F   195263 SSPAL        06808271453   BELO MONTE                              319            57040000JACINTINHO          MACEIO              AL29061955   3202415                3202147                                                                                                                                                                     M     00      9                                                                                                                                                                                                                                                                                                                                                                         0703200714032002S";
        String string2 = "010005283                       91522  91522  ABELARDO RAMOS DOS SANTOS                                                                 F   418016 SSP/AL       23941600478   R.PROFªNOEMIA G.RAMALHO-QD: A           30   CASA :09  57033000JACARECICA          MACEIO              AL15121958   2317545                                       99914634                                                                                                                                             M     04      9                                                                                                                                                                                                                                                                                                                                                                         0703200708092005S";

        for (int i = 0; i<string1.length(); i++){
            System.out.println("i1 = "+i+" | "+string1.charAt(i));
        }
        
        for (int i = 0; i><string2.length(); i++){
            System.out.println("i2 = "+i+" | "+string2.charAt(i));
        }
    }

fuciona. geralmente o nome aparece na posição 46. e o endereço na posição 174.

vlw e obrigado a todos.>

Lina,

agora me diz… e se tem um um nome composto?

Oi,
poisé… ai complica… posicaoatual+1 =P

ao chegar no caracter espaço, fazer uma verificação se o próximo caracter é uma letra. se sim… ela se torna uma constante…

LINA FERREIRA (CONSTANTE)

só faria isso no primeiro espaço que encontrar…
agora… se tiver 2 espaços e o sobrenome… já é outra coisa =P

Tchauzin!

tá…
admito… tá meia furada a logica
hahahahahaha
só pensar formas pra funcionar x)

Cara,

pelo que vi as opções estão acabando mesmo. Resta vc pedir para enviarem pra vc o txt com algum delimitador padrão ou que alterem o sistema que gera esse txt para que assim o faça rsss.

[]´s

Bem se é pra ter uma resposta definitiva ai vai:

Se vcs observarem as telas em que eu mandei o arquivo, ou as duas linhas do arquivo que mandei na minha ultima mensagem. E executarem o método main da mensagem.

Poderão então perceber que se torna trivial a resolução desse problema.
Uma vez que o campo endereço aparece sempre na´posição 174 do vetor de char que é a nossa linda String.

Dando uma olhada mais minuciosa ainda verao que o proximo campo aparece sempre na posição 214.

Notem também que o campo nome vem na posição 36.

Ou seja:

*Pra pegar o endereço eu vou da posição 174 até a posição 214.
*O resto da implementação fica a critério de cada um. Seja esse por meio de substring ou por meio de ciclos de iterações.

Obrigado a todos que ajudaram

foi como eu disse, o pessoal fez muita festa pruma coisa tao simples, qdo vc colocou o arquivo eu vi de cara q era delimitado por tamanho…

Mas se vc acompanhou a discusão no começo, o gp7junior disse q o arquivo era sequencial e não posicional, por isso demoramos pra ter outras idéias, após ele mostrar o arquivo concluimos que era de outra forma (muitoooo mais simples)