Primeiramente, boa tarde a todos.
Estou fazendo um exercício e estou com alguns problemas de lógica. Quem puder me ajudar, ascendendo uma luz, ajuda, vamos ao código.
Dada a String asd12345, eu preciso analisar da Direita pra Esquerda quantas vezes o número 0 e o número 1 apareceu e fazer o seguinte calculo.
1 - apareceu uma vez 1 = (11 = 1)
Se a sequencia fosse assim asd012 o resultado deve ser assim.
0 * 1 = 0
1 * 1 = 1
Vamos ao código.
/**
* Entrada das Informações.
*/
String sequencia = JOptionPane.showInputDialog("Sequencia de Caracteres: ");
/**
* Invertendo a Sequencia.
* Essa parte só entrou pra eu ver o resultado impresso.
*/
for(int i = sequencia.length() - 1; i >= 0; i--) {
sequenciaInversa += sequencia.charAt(i);
}
/**
* Processamento das Informações.
*/
for(int i = sequenciaInversa.length() - 1; i >= 0; i--) {
if(sequenciaInversa.charAt(i) == '0') {
achei++;
valor = sequenciaInversa.indexOf(sequenciaInversa);
posicao = i;
System.out.println("Processamento: " + valor + "*" + achei);
resultado = valor * achei;
} else if(sequenciaInversa.charAt(i) == '1') {
achei++;
valor = sequenciaInversa.indexOf(sequenciaInversa);
posicao = i;
System.out.println("Processamento: " + valor + "*" + achei);
resultado = valor * achei;
}
}
Aqui no processamento que complica.
- O que eu entendo que fiz.
– Se o valor for igual a 0 eu adiciono 1 ao contador achei, usando o indexOf eu pego esse valor e guardo e também guardo a posição dele, aí eu multiplico o valor * contador.
Só que quando entra no ELSE, o valor continua o mesmo, ou seja, 0.
O que eu preciso.
Eu quero que me ajudem a pensar para que eu possa percorrer a String e sempre que achar algo que eu quero, eu guardo o valor e a posição.
Resultado final para a String 1230123
1 * 1 = Numero 1 * A quantidade que achou. +
0 * 1 = Numero * Quantidade que achou +
1 * 2 = Numero * Quantidade que achou.
Quem puder dar uma ajuda, agradeço muito.