oviedofiles Posted June 21, 2012 Report Share Posted June 21, 2012 hola necesito ayuda para una clase rut que tengo que hacer en bluej.lo que tengo que hacer es que al rut ingresado tengo que mostrarlo por pantalla con los puntos y el guion.y eso no se como hacerlo.esto es lo que llevo hasta el momentose agradece cualquier ayuda. import java.io.*; public class ValidaRut{ private int rut; private String dv; public ValidaRut(int rut,String dv) { this.rut=rut; this.dv=dv; } public int getRut() { return rut; } public String getDv() { return dv; } public void setRut (int rut) { this.rut=rut; } public void setDv(String dv) { this.dv=dv; } public void leeRut() throws IOException { InputStreamReader isr=new InputStreamReader(System.in); BufferedReader in=new BufferedReader(isr); System.out.print("Ingrese su rut : "); setRut(Integer.parseInt(in.readLine())); System.out.print("Ingrese su dv : "); setDv(in.readLine()); } public boolean validarRut() { int numero=rut; int r=0; int suma=0; int contador=2; while (numero>0) { r=numero%10; suma=suma + r*contador; contador++; if (contador>7) { contador=2; } numero=numero/10; } //System.out.println("la suma es: "+suma); r=11-suma%11; String dvo=""; if (r==11) { dvo="0"; } else { if (r==10) { dvo="K"; } else { dvo=""+r; } } if (dv.equalsIgnoreCase(dvo)) { return true; } else { return false; } //return true; }} Link to comment Share on other sites More sharing options...
susodicho Posted June 22, 2012 Report Share Posted June 22, 2012 (edited) :mmm: No sé si tu clase estará bien estructurada, pero igual aquí dejo un método que no tengo idea si funciona (no tengo instalado el JDK ni ningún IDE para Java):static public String getRUTstring(int rut, String dv) { NumberFormat nf; nf = NumberFormat.getNumberInstance(new Locale("es","CL")); return (nf.format(rut) + "-" + dv); }Quizás tengas que convertir el método a un método de instancia (no estático) y quitarle los parámetros (usaría los atributos de la clase). Además: if (dv.equalsIgnoreCase(dvo)) { return true; } else { return false; } ...¿no sería mejor escribirlo así?: return dv.equalsIgnoreCase(dvo); Otra cosa, creo que el dígito verficador debería ser de tipo char. Edited June 22, 2012 by susodicho Link to comment Share on other sites More sharing options...
eNRIQUeeNGENDRo Posted July 24, 2012 Report Share Posted July 24, 2012 el ultimo return true no deveria estar como cmentario //true...el ultimo if deveria ser asi...........if(dvo.equalsIgnoreCase(dv))..... no tengo el codigo a mano pero tienes que usar el metodo length, y trabajar son substring...con el metodo length sabras el largo del String y lo podras cortar el string en varios substring... Link to comment Share on other sites More sharing options...
AshWilliams Posted July 25, 2012 Report Share Posted July 25, 2012 http://users.dcc.uchile.cl/~mortega/microcodigos/validarrut/java.html Saludos :krider: Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now