Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Excepciones usando Strings

Hola buenas, me mandaron en clase hacer un programa de un banco para registrar nombres, numeros de cuenta, etc.

El caso es que como es de imaginar, a la hora de pedir los datos, el nombre no puede quedar vacio, en su lugar deberia mandarse un error. He probado con try/catch y con if pero no lo logro hacer funcionar.

Aqui os dejo mi codigo por si alguien puede echarme una mano.

Gracias y salu2.
-----------------------------------------------
import java.util.*;
public class Ccuenta{
public void setNombre(String nombre){

Scanner tcl = new Scanner(System.in);
System.out.println("Escribe el nombre de la cuenta");
nombre = tcl.next();
if (nombre == " ")
System.out.println("No has escrito un nombre");


}
}

febrero 9, 2015 | Unregistered Commenterjota

PD: tambien he probado con nextLine() y como es de esperar, no funciona.

febrero 9, 2015 | Unregistered Commenterjota

En Java, el operador == no compara el contenido de dos String, sino sus referencias.

public class NewMain {

public static void main(String[] args) {
Scanner tcl = new Scanner(System.in);
System.out.println("Escribe el nombre de la cuenta");
String nombre = tcl.nextLine();
if ("".equals(nombre.trim())) {
System.out.println("No has escrito un nombre");
}

}
}

febrero 9, 2015 | Registered Commenterchoces

Buenas,
Yo haría lo siguiente:


if (nombre.isEmpty()) {
System.out.println("No has escrito un nombre");
}

Por supuesto dentro de tu codigo main, y dentro de un DO-WHILE, para realizar esto mientras el usuario no meta un nombre.

Por otro lado @choces ; ¿en tu opinión que es mas eficiente, una instrucción "if ("".equals(nombre.trim())) {" o una instrucción ""if (nombre.isEmpty()) {" ??

yo suelo utilizar isEmpty, pero igual estoy haciendo mal en cuanto a eficiencia.

saludos,

Oldskultxo

febrero 10, 2015 | Registered Commenteroldskultxo

isEmpty() es válido cuando se quiere comprobar si el String está vacío.
Pero en este caso, se podrían introducir solo espacios en blanco, por lo que isEmpty() devolvería false, y sin embargo el nombre no sería válido.

febrero 10, 2015 | Registered Commenterchoces