Boa noite pessoal,
Estou fazendo uma atividade que é assim:
Nós temos as operações na matemática: soma, subtração, divisão e multiplicação.
Pra fazer uma soma em java é muito simples, basta:
int a = 1;
int b = 1;
int result = a + b;
Já na atividade que eu estou fazendo o calculo tem que ser feito como nós fazemos na mão mesmo, por exemplo, você tem 15 + 15:
Primeiro você pega o número da direita, faz a soma, 5 + 5 = 10, então o 0 fica já no resultado do lado direito e o 1 fica armazenado pra somar com os números da esquerda depois;
Agora somo os números da esquerda 1 + 1 = 2 + 1 que tinha sobrado;
No final junto (concateno) o resultado da esquerda com o da direita;
Estou fazendo isso em um método sendo que o parametro passado pro mesmo são 2 String, apenas começei fazer, só da certo por enquanto se for passado tipo 20 + 30 números assim, deêm uma olhada:
public int soma(String valor1, String valor2) {
String numDireita1;
String numDireita2;
String numEsquerda1;
String numEsquerda2;
int resultadoDireita = 0;
int resultadoEsquerda = 0;
String resultado;
int resultado2;
int count = 1;
for (int i = 0; i < valor1.length(); i++) {
int length = valor1.length() - count;
if (length != 0) {
numDireita1 = String.valueOf(valor1.charAt(length));
numDireita2 = String.valueOf(valor2.charAt(length));
count++;
resultadoDireita = Integer.valueOf(numDireita1).intValue() + Integer.valueOf(numDireita2).intValue();
} else {
numEsquerda1 = String.valueOf(valor1.charAt(length));
numEsquerda2 = String.valueOf(valor2.charAt(length));
resultadoEsquerda = Integer.valueOf(numEsquerda1).intValue() + Integer.valueOf(numEsquerda2).intValue();
}
}
resultado = resultadoEsquerda + "" + resultadoDireita;
resultado2 = Integer.parseInt(resultado);
return resultado2;
}
O que eu queria de vocês era alguma idéia, pra mim poder dar continuidade nesse projetinho, essa é apenas uma operação, tenho que fazer todas, mas fazendo uma as outras ficam mais simples, e na verdade esse método tem que receber como parametro um array com valores, mas acredito que se eu fizer assim da forma mais simples vai simplificar pra fazer da maneira que tem que ser feito…
Espero ter cido claro !!
Agradeço desde já a atenção de todos. 
se eu fosse vc, ao invés do
valor1.charAt(length)
usava
valor1.split("");
desse modo vc vai ter certinho qtos digitos são e vai ter os digitos separados certinhos e comportados num array…
dae pega o array com menos digitos e completa com zeros pra ficar do mesmo tamanho com o maior array
a partir dae fica fácil… vc vai ter 2 arrays de tamanhos iguais… é só fazer os calculos da maior posição do array pra menor posição e guardando o numero que passasse numa variável a parte…
por exemplo… esse 15 + 15
usando o split, vc teria 2 arrays de 2 posições
usando um for da posição 1 pra 0, somaria os numeros da posição 1 ( que no caso é o 5+5 )
como o resultado é maior que 9, vc da um split no resultado, pega o numero mais a direita e guarda numa variavel de resultado… e o(s) numero(s) da esquerda vc guarda em uma variavel curinga que vai se somar no restante da conta…
parece trabalhoso mas nem é… e vc pode passar qtos numeros quiser q vai dar certo… e pode-se o usar o mesmo método para subtração bastando mudar algumas coisas…
Bom dia redr4gon,
Eu não fiz ainda mais já percebi que a sua idéia é muita boa,
Hoje mesmo foi fazer dessa forma, e quando terminar eu posto aqui pra verem como ficou …
É que agora não da pra mim fazer, mais de noite eu faço e assim que terminar eu posto !
Obrigado pela idéia até o momento !
Falo!
Boa noite cara,
Nossa pensei que seria mais facil nem vou postar o código que saiu aqui comigo tentando fazer, porque até eu me perdi nos for’s cara …
Estou com dificuldade pra fazer esse exercicio, mesmo que não seja dificil como vc falou!
Só pra você ter uma idéia vou postar uma parte do código, que é a parte que eu resolvi pra verificar o tamanho dos arrays e preencher com 0:
public int soma(String valor1, String valor2) {
String[] numDireita;
String[] numEsquerda;
String[] valorE = valor1.split("");
String[] valorD = valor2.split("");
if (valorE.length < valorD.length) {
numEsquerda = new String[valorD.length];
numDireita = new String[valorD.length];
for (int i = 0; i < numEsquerda.length; i++) {
numDireita[i] = valorD[i];
if (!(i == valorE.length)) {
numEsquerda[i] = valorE[i];
} else {
numEsquerda[i] = "0";
}
}
} else if (valorD.length < valorE.length) {
numDireita = new String[valorE.length];
numEsquerda = new String[valorE.length];
for (int i = 0; i < numDireita.length; i++) {
numEsquerda[i] = valorE[i];
if (!(i == valorD.length)) {
numDireita[i] = valorD[i];
} else {
numDireita[i] = "0";
}
}
} else {
numEsquerda = new String[valorE.length];
numDireita = new String[valorD.length];
for (int i = 0; i < numEsquerda.length; i++) {
numEsquerda[i] = valorE[i];
numDireita[i] = valorD[i];
}
}
Olha o tamanho que ficou até aqui, e olha que tem mais, mais como ta grande e não ta funcionando nem vou postar 
Se alguém puder me ajudar não estou conseguindo pensar nesse problema, sério mesmo…
E uma observação, quando o método split é utilizado dessa forma split("") ele cria um espaço em branco no indice 0 do array !
Obrigado pela atenção!
Boa noite pessoal,
Alguém ai pode me dar uma força ainda ?
Agradeço a atenção de todos !