[RESOLVIDO] Duvida soma posição String

4 respostas
D

Pessoal, boa tarde!

Antes de tudo, informo que estou iniciando em programação por isso que talvez essa seja uma dificulde simples porem não estou conseguindo resolver.
Vou tentar exemplificar o problema

Preciso gerar códigos de 000 a 999, sempre tendo 3 casa pois o problema é, que supondo que seja uma string onde cada carácter ocupa uma posição ex: posição 1 2 3 contêm 000, 001,002… 999.
Preciso somar o valores das posições impares ex: 454 teria que somar as posições 1+ 3 ou seja 4 + 4. Isso para todos os números de 000 a 999.
Alguém teria uma luz para esse problema ?

Preciso desse calculo para resolver um problema de código de barras.

Desde já agradeço.

4 Respostas

TerraSkilll

Sua dificuldade está em gerar os códigos ou em somar as posições?

Para gerar os códigos, um loop de 0 a 999 pode fazê-lo facilmente, se você precisa gerar todas as combinações possíveis.

Para somar as posições ímpares, você pode usar o método charAt() da classe String e pegar os caracteres nas posições 0 e 2, convertê-los em int e somá-los.

Abraço.

D

Isso mesmo, minha dificuldade esta na soma das posições, ja tentei utilizar esse método, mas vou tentar novamente. Obrigado.

TerraSkilll

Aqui vai um exemplo, então:

String str = "345";
		
int soma = Character.getNumericValue(str.charAt(0)) + Character.getNumericValue(str.charAt(2));
		
System.out.println(soma);

O método Character.getNumericValue transforma um char (que é o que o charAt retorna) em um inteiro.

Obviamente, se você tiver um número menor que 100, precisará preencher as posições iniciais com zero. Basta concatenar 0 com o número antes de fazer o charAt. Algo assim:

String str = "1";

if (str.length() < 10){
  str = "00" + str;
}else if(str.length() < 100){
  str = "0" + str;
}

int soma = Character.getNumericValue(str.charAt(0)) + Character.getNumericValue(str.charAt(2));
    		
System.out.println(soma);

Não é estritamente necessário pois, se a primeira posição for 0, ela não influenciará na soma, mas pode te ajudar a manter o código consistente. Deve haver jeitos mais elegantes de fazer isso, mas acho que esse serve e é simples o bastante.

Abraço.

D

Muito Obrigado, agora consegui o que precisava, entendi bem o método charAt.

Criado 22 de janeiro de 2019
Ultima resposta 22 de jan. de 2019
Respostas 4
Participantes 2