division de Strings en java

TRAXTORM

buenas tengo una practica de java donde tengo q realizar la suma , resta, comparacion, multiplicacion y division de 2 Strings . He podido hacer todos menos el de la division que nose como plantearlo.

N1 dividendo (tipo string) y N2 divisor (tipo string) , ha de calcular N1/N2

public static String division(String N1, String N2)

con un bucle q calcule la division Entera y su resto entre los strings N1 y N2

pd: si q si... q ya se q si pregunto y me lo dan todo hecho no aprendo..... también SE de la peña q me vacilaba en otro post q preguntaba la solución a otro problema de java, pues bien sake un 9 en el final.... así q si pregunto y podeis ayudar ayudarme.... si es para decir :q asi no aprendo,,,, q si me atasko con esto... voy a flipar mas alante i tal, q se ahorren el comentario

PiradoIV

Igual no lo entendí bien pero... ¿lo que quieres es convertir Strings a int's para hacer operaciones?.

TRAXTORM

no no Pirado sinó seria muy facil..... xd se trata de hacer operaciones con numeros Naturales (>0) pero de longitud aleatoria.... sin tener la limitacion del +-2147483647 del int

mira te pongo la suma por ejemplo:

public static String suma(String N1S, String N2S)
{ //N1S+N2S = otro String
int N1, N2, N3, Length, tempStrLength;
String N3S="";

int lengthN1 = N1S.length();//calculamos longitud de los strings
int lengthN2 = N2S.length();

if (lengthN1>lengthN2)
{
Length = lengthN1;
for (int i=0; i<(lengthN1-lengthN2); i++) N2S = "0"+ N2S;}
else if (lengthN1<lengthN2)
{
Length = lengthN2;
for (int i=0; i<(lengthN2-lengthN1); i++)N1S = "0"+ N1S;
}
else Length = lengthN1;

for (int i=(Length-1); i>=0; i--)
{

N1 = Integer.parseInt(N1S.substring(i, i+1));
N2 = Integer.parseInt(N2S.substring(i, i+1));

N3 = Bloc.suma0(N1, N2);//Uso de la funci de classe (Suma)
N3 = Bloc.suma0(N3, Bloc.carry);
Bloc.carry = 0;

if (i>0)
{
if (N3>9) //llevamos el carry
{

String temp3S = Integer.toString(N3);
tempStrLength = temp3S.length();
N3 = Integer.parseInt( temp3S.substring(tempStrLength-1, tempStrLength) );
Bloc.carry = Integer.parseInt( temp3S.substring(0, tempStrLength-1) );
}
}

N3S = Integer.toString(N3) + N3S;}

return N3S;//devuelve el valor de la suma
}

//----------------------------------------------------//
static int carry=0; //declaramos variables

public static int suma0(int num1, int num2
{return(num1 + num2);
}

NO SE COMO KEDARAN LAS TABULACIONES AL PEGAR AKI.... kiza keda inteligible XD

A grandes rasgos la Suma se hace Cifra a Cifra del String , pasando cada vez a INT solo a la cifra del String en el q nos encontramos.

La resta pues mas de lo mismo,,,, solo que un poco mas complikada por el tema de los signos.... luego la comparación pues también me ha salido.... y la multiplicación tambien que se basa en utilizar la comparacion para sakar el mejor codigo posible y en vez d sumar 40 veces 2.... sume 2 veces 40 por ejemplo. BUeno todo eso CLARO pero ahora DIVIDIR con STRINGS? sin poder pasar todo el STRING A INT y operar.... como lo ariais???

LOc0

La división son RESTAS SUCESIVAS. Así que puedes hacer un bucle que vaya restando hasta que ya no puedas restar más y lo que te quede es el resto:

Ejemplo: 128/30

(1) 128-30 = 98

(2) 98-30 = 68

(3) 68-30 = 38

b[/b] 38 - 30 = 8

Cociente--> 4 Resto--> 8

Salu2 y suerte!!

TRAXTORM

LOCO ERES EL PUTO AMO !! eso es lo q buskaba xdd me comia la cabeza i no veia q eran restas sucesivas jajaj ! ahora haber si me sale !

thxx

LOc0

Jajajaja, a mandar :D

Salu2 ;)

Usuarios habituales

  • LOc0
  • TRAXTORM
  • PiradoIV