Una variable de tipo primitivo como un int puede compararse a través de los operadores binarios (binarios porque necesitan dos operandos)
int num = 5, num2 = 10;
num == num2; //compara la igualdad entre num y num2
pero este tipo de comparación no es valida para un String, en realidad el compilador no dará error si se utiliza el operador == para comparar dos String, pero si mostrara la advertencia y esto es porque == compara a nivel binario los datos como si se tratase de un valor primitivo, esto puede generar errores en tiempo de ejecución difíciles de encontrar y depurar, sobretodo si estamos comparando variables con cadenas de caracteres entrantes a través del teclado.
en vez de eso utilizaremos un método de la clase String llamado equals. lo utilizaremos como ejemplo en un if.
String nombre1 = "horacio";
String nombre2 = "carlos";
if(nombre1.equals(nombre2))
{
System.out.println("Son iguales");
}
para utilizar equals ponemos el nombre de la variable a comparar, un punto y equals() entre los parentesis va la variable que se comparara con la primera. Este metodo (equals) devuelve un valor booleano, true si son iguales y false si son diferentes.
Si te fijas, llamamos al método atraves de un punto despues del nombre de la variable al igual como lo hacemos cuando instanciamos una clase (clase instancia = new clase();) y esto es porque cuando creamos un String en realidad estamos creando una variable de aquella clase. por eso podemos acceder a los métodos de la clase String simplemente poniendo un punto después de la variable.
Comparar String de distintos tamaños.
String tiene un metodo llamado compareTo que es heredado desde una interfaz generica llamada Comparable, ya veremos de que se trata esto. Lo importante es que podemos usar el metodo recien nombrado en cualquier cadena de caracteres,
compareTo devuelve 0 si los String son iguales, un valor negativo si la primera palabra es lexicograficamente menor y un valor positivo si la palabra es lexicograficamente mayor
ej:
String hola = "hola";
String hola1 = "hola como estas";
if(hola.compareTo(hola1) > 0) //compareTo devuelve un numero positivo si hola es mayor que hola1
{
System.out.println("mayor");
}
else if(hola.compareTo(hola1)<0) //compareTo devuelve un numero negativo si hola es menor que hola1
{
System.out.println("menor"); //este es el que se ejecuta ya que se cumple el encabezado del if. osea, el
} //numero que devulve compareTo es menor que 0
else if(hola.compareTo(hola1)==0) //compareTo devuelve 0 si ambos String son iguales
{
System.out.println("igual");
}
El resultado de esto seria "menor". ya que hola es lexicograficamente menor que hola1.
Comparar String con mayusculas y minusculas.
A veces sera necesario comparar Strings que se diferencien solo por sus mayus o minusculas. Para ello utilizares el metodo equalsIgnoreCase(). Este metodo funciona igual que el equals.
String nombre = "chuña";
String nombre2="CHUÑA";
if(nombre.equalsIgnoreCase(nombre2))
{
System.out.println("Los nombres son iguales");.
}
Esto es muy util cuando tenemos una aplicación que pide ingreso de datos y no necesitamos ser tan estrictos con ello.
El metodo toString
El método toString es heredado por todos los objetos en java a través de clase Object (la clase mas alta en el árbol, por decirle así) y nos permite mostrar al objeto como un String. por ahora solo lo veremos en arreglos. por ejemplo tenemos un pequeño problema, cada vez que queremos mostrar un arreglo (que es un objeto) debemos llamar a un for o a un while y mostrar sus valores de forma individual. La solución para esto fue presentada en java 5 a traves de la clase Arrays con ayuda del método toString.
por ejemplo, supòngamos que deseamos imprimir el siguiente arreglo como un String.
int arregloA[] = {22,15,103,1,896};
para hacerlo debemos importar java.util.Arrays; , la clase quedaria algo asi.
///////////////////////////////////////////////////////
import java.util.Arrays;
public class saludos {
public static void main(String[]args)
{
int variables[]={22,15,103,1,896};
System.out.println(Arrays.toString(variables));
}
}
////////////////////////////////////////////////////
La salida seria esta:
run:
[22, 15, 103, 1, 896]
GENERACIÓN CORRECTA (total time: 0 seconds)
También se puede guardar el String de retorno del método Arrays.toString( ); en un String diferente.
por ejemplo
String resultante = Arrays.toString(variables);
Lo que va entre el paréntesis es el arreglo a imprimir.
Otros metodos.... (Lo que esta entre paréntesis al lado del nombre del método es el tipo de valor de retorno del metodo)
length(); (int)// retorna el largo del String como un valor entero.
ej:
String dato ="vocales";
int vDato = dato.length();
por consiguiente vDato valdrá 7. Si contamos el largo de un String y este tiene espacios entre medio estos igual cuentan ya que esos espacios cuentan como caracteres también.
length(); (int)// retorna el largo del String como un valor entero.
ej:
String dato ="vocales";
int vDato = dato.length();
por consiguiente vDato valdrá 7. Si contamos el largo de un String y este tiene espacios entre medio estos igual cuentan ya que esos espacios cuentan como caracteres también.
indexOf(); (int) //retorna la posición donde encuentre el String o el char pedido en su lista de parámetros
ej:
String cadena = "the beatles";
int busca = cadena.indexOf("beatles");
entonces busca ahora tendrá el valor 4 ya que encuentra a "beatles" a partir de la posición 4, recordar que se empieza a contar de 0 y que cuenta el espacio en blanco. en caso de no encontrar al String o char.
ej:
String cadena = "the beatles";
int busca = cadena.indexOf("beatles");
entonces busca ahora tendrá el valor 4 ya que encuentra a "beatles" a partir de la posición 4, recordar que se empieza a contar de 0 y que cuenta el espacio en blanco. en caso de no encontrar al String o char.
replace(); (String, char)//reemplaza un caracter (char) por otro especificado en la lista de parametros.
ej:
String cadena = "Pata";
String NCadena;
Ncadena = cadena.replace('a' , 'o');
Ncadena ahora tiene el String "Poto" ya que se reemplazaron las 'a' por las 'o'
replaceAll(); (String)// reemplaza un fragmento completo del String o el String completo.
ej:
String nombre = "juanin juanjarri";
nombre = nombre.replaceAll("juanjarri","larrain");
nombre, entonces, queda como "juanin larrain";
toUpperCase();(String) //cambia todas las letras a mayusculas
ej:
String nombre = "maria mercedes";
String nombre = nombre.toUpperCase();
ahora String contiene "MARIA MERCEDES" Cambien esta la opción inversa, es decir, convertir todo a minúsculas a través de toLowerCase();
ej:
String cadena = "Pata";
String NCadena;
Ncadena = cadena.replace('a' , 'o');
Ncadena ahora tiene el String "Poto" ya que se reemplazaron las 'a' por las 'o'
replaceAll(); (String)// reemplaza un fragmento completo del String o el String completo.
ej:
String nombre = "juanin juanjarri";
nombre = nombre.replaceAll("juanjarri","larrain");
nombre, entonces, queda como "juanin larrain";
toUpperCase();(String) //cambia todas las letras a mayusculas
ej:
String nombre = "maria mercedes";
String nombre = nombre.toUpperCase();
ahora String contiene "MARIA MERCEDES" Cambien esta la opción inversa, es decir, convertir todo a minúsculas a través de toLowerCase();
subString(); (String) // toma un fragmento de un String y lo almacena en la misma o otra variable.
ej:
String frase = "resident evil es un buen juego"
ej:
String frase = "resident evil es un buen juego"
frase = frase.subString(20,30);
frase ahora valdria "buen juego";
Transformaciones desde y hacia String
int valor = Integer.parseInt(String) // Pasar de String a int
String resultado = Integer.toString(12345) // Pasar de int a String
String resultado = Double.toString(12345.25) // Pasar de double a String
String resultado = Float.toString(12345.70) // Pasar de float a String
String hilera = Character.toString(caracter) //Pasar de caracter a hilera
*los valores entre parentesis son solo ejemplos.
frase ahora valdria "buen juego";
Transformaciones desde y hacia String
int valor = Integer.parseInt(String) // Pasar de String a int
String resultado = Integer.toString(12345) // Pasar de int a String
String resultado = Double.toString(12345.25) // Pasar de double a String
String resultado = Float.toString(12345.70) // Pasar de float a String
String hilera = Character.toString(caracter) //Pasar de caracter a hilera
*los valores entre parentesis son solo ejemplos.
No hay comentarios:
Publicar un comentario
Alguna consulta, dato, reclamo o donacion1313?