Número, Cadena y Matriz

JavaJavaBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En Java y otros lenguajes orientados a objetos, los objetos son colecciones de datos relacionados que vienen con un conjunto de métodos. Estos métodos operan sobre los objetos, realizando cálculos y a veces modificando los datos del objeto. Aquí introducimos tres tipos de objetos integrados de Java simples pero importantes: Number, String y Array.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java(("Java")) -.-> java/StringManipulationGroup(["String Manipulation"]) java(("Java")) -.-> java/DataStructuresGroup(["Data Structures"]) java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java/BasicSyntaxGroup -.-> java/data_types("Data Types") java/BasicSyntaxGroup -.-> java/for_loop("For Loop") java/StringManipulationGroup -.-> java/strings("Strings") java/StringManipulationGroup -.-> java/stringbuffer_stringbuilder("StringBuffer/StringBuilder") java/DataStructuresGroup -.-> java/arrays("Arrays") java/DataStructuresGroup -.-> java/arrays_methods("Arrays Methods") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/wrapper_classes("Wrapper Classes") java/SystemandDataProcessingGroup -.-> java/math_methods("Math Methods") java/SystemandDataProcessingGroup -.-> java/string_methods("String Methods") subgraph Lab Skills java/data_types -.-> lab-178548{{"Número, Cadena y Matriz"}} java/for_loop -.-> lab-178548{{"Número, Cadena y Matriz"}} java/strings -.-> lab-178548{{"Número, Cadena y Matriz"}} java/stringbuffer_stringbuilder -.-> lab-178548{{"Número, Cadena y Matriz"}} java/arrays -.-> lab-178548{{"Número, Cadena y Matriz"}} java/arrays_methods -.-> lab-178548{{"Número, Cadena y Matriz"}} java/wrapper_classes -.-> lab-178548{{"Número, Cadena y Matriz"}} java/math_methods -.-> lab-178548{{"Número, Cadena y Matriz"}} java/string_methods -.-> lab-178548{{"Número, Cadena y Matriz"}} end

Número

Básicamente, usamos tipos de números primitivos como byte, int, double, etc. Sin embargo, a veces necesitamos usar objetos en lugar de tipos de datos primitivos. Java proporciona clases envolventes para los tipos de datos primitivos. Son Byte, Short, Long, Integer, Double, Float, etc. Un objeto envolvente se puede convertir de nuevo en un tipo de dato primitivo. Este proceso se llama desempaquetado. La clase Number es parte del paquete java.lang. Los paquetes se hablarán más adelante.

A continuación, se muestra una lista de algunos de los métodos de clase comunes que implementan las subclases de la clase Number:

  • xxxValue(): Convierte el valor de este objeto Number al tipo de datos xxx y lo devuelve.
  • compareTo(): Compara este objeto Number con el argumento.
  • equals(): Determina si este objeto Number es igual al argumento.
  • valueOf(): Devuelve un objeto Integer que contiene el valor del primitivo especificado.
  • toString(): Devuelve un objeto String que representa el valor de un int o Integer especificado.
  • parseInt(): Este método se utiliza para obtener el tipo de int primitivo a partir de un cierto valor de String.
  • abs(): Devuelve el valor absoluto del argumento.
  • ceil(): Devuelve el entero más pequeño que es mayor o igual que el argumento. Devuelto como un double.
  • floor(): Devuelve el entero más grande que es menor o igual que el argumento. Devuelto como un double.
  • pow(): Devuelve el valor del primer argumento elevado a la potencia del segundo argumento.
  • round(): Devuelve el long o int más cercano, según indique el tipo de retorno del método, al argumento.

Ejemplo:

Escribe el siguiente código en el archivo /home/labex/project/numberTest.java:

public class numberTest
{
    public static void main(String[] args){
        Integer x = 1;    // empaqueta int en un objeto Integer
        x = x + 1;        // desempaqueta el Integer en un int
        System.out.println(Integer.parseInt("10"));  // analiza int a partir de una cadena
        System.out.println( "x = " + x);
    }
}

Salida:

Ejecuta el archivo numberTest.java usando el siguiente comando:

javac /home/labex/project/numberTest.java
java numberTest

Ver la salida:

10
x = 2

String

Las cadenas son objetos, así que es posible que te preguntes: “¿Qué datos contiene un objeto String?” y “¿Qué métodos podemos invocar en los objetos String?” Los componentes de un objeto String son caracteres. No todos los caracteres son letras; algunos son números, otros son símbolos especiales y el resto son otras clases de caracteres. Por simplicidad, los llamamos todos caracteres. Hay muchos métodos de cadena en la clase String, pero solo usaremos algunos de ellos. El resto se puede consultar en la documentación en el sitio web oficial.

Nota: La clase String es inmutable, por lo que una vez creada, un objeto String no se puede modificar. Si es necesario realizar muchas modificaciones a cadenas de caracteres, entonces deberías usar las clases StringBuffer y StringBuilder.

A continuación, se muestra una lista de algunos de los métodos comunes de las clases String, StringBuffer y StringBuilder:

  • char charAt(int index): Se devuelve el carácter especificado de la secuencia actualmente representada por el buffer de cadena, como se indica por el argumento index.
  • void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin): Los caracteres se copian de este buffer de cadena al array de caracteres destino dst.
  • int indexOf(String str): Devuelve el índice dentro de esta cadena de la primera aparición de la subcadena especificada.
  • int indexOf(String str, int fromIndex): Devuelve el índice dentro de esta cadena de la primera aparición de la subcadena especificada, comenzando en el índice especificado.
  • int lastIndexOf(String str): Devuelve el índice dentro de esta cadena de la aparición más a la derecha de la subcadena especificada.
  • int lastIndexOf(String str, int fromIndex): Devuelve el índice dentro de esta cadena de la última aparición de la subcadena especificada, buscando hacia atrás comenzando en el índice especificado.
  • int length(): Devuelve la longitud (número de caracteres) de este buffer de cadena.
  • String substring(int start): Devuelve una nueva String que contiene una subsecuencia de caracteres actualmente contenidos en este StringBuffer. La subcadena comienza en el índice especificado y se extiende hasta el final del StringBuffer.
  • String substring(int start, int end): Devuelve una nueva String que contiene una subsecuencia de caracteres actualmente contenidos en este StringBuffer.

Ejemplo:

Escribe el siguiente código en el archivo /home/labex/project/stringTest.java:

public class stringTest
{
    public static void main(String[] args){
        String greeting = "Hello world!";
        String hello = new String("Hello!");
        System.out.println("greeting is: "+ greeting);
        System.out.println("hello is: "+ hello);
        System.out.println("length of greeting: " + greeting.length());
        System.out.println("first char of greeting: " + greeting.charAt(0));
        System.out.println("index of 'e' in hello: "+ hello.indexOf('e'));
        System.out.println("substring of greeting: "+ greeting.substring(6));  //substr: world

    }
}

Salida:

Ejecuta el archivo stringTest.java usando el siguiente comando:

javac /home/labex/project/stringTest.java
java stringTest

Ver la salida:

greeting is: Hello world!
hello is: Hello!
length of greeting: 12
first char of greeting: H
index of 'e' in hello: 1
substring of greeting: world!

Array

Una estructura de matriz se utiliza para almacenar una colección de datos, pero a menudo es más útil pensar en una matriz como una colección de variables de un solo tipo. En lugar de declarar variables individuales, como number0, number1,..., number99, se declara una variable de matriz numbers y se utiliza numbers[0], numbers[1],..., numbers[99] para representar variables individuales. El primer elemento de la matriz está en un índice de 0.

A continuación, se muestra una lista de algunos de los métodos comunes que tienen las matrices:

  • public static int binarySearch(Object[] a, Object key): Busca el valor especificado en la matriz especificada utilizando el algoritmo de búsqueda binaria. La matriz debe estar ordenada antes de llamar a este método. Esto devuelve el índice de la clave de búsqueda, si está contenida en la matriz; de lo contrario, devuelve (–(insertion point + 1)).
  • public static boolean equals(long[] a, long[] a2): Devuelve true si las dos matrices especificadas de long son iguales entre sí. Dos matrices se consideran iguales si ambas matrices contienen el mismo número de elementos y todos los pares correspondientes de elementos en las dos matrices son iguales. Esto devuelve true si las dos matrices son iguales. El mismo método se puede utilizar para otros tipos de datos primitivos (byte, short, int, etc.) también.
  • public static void fill(int[] a, int val): Asigna el valor int especificado a cada elemento de la matriz especificada de int. El mismo método se puede utilizar para otros tipos de datos primitivos (byte, short, etc.) también.
  • public static void sort(Object[] a): Ordena la matriz especificada de objetos en orden ascendente según la ordenación natural de sus elementos. El mismo método se puede utilizar para tipos de datos primitivos (byte, short, int, etc.) también.

Ejemplo:

Escribe el siguiente código en el archivo /home/labex/project/arrayTest.java:

public class arrayTest
{
    public static void main(String[] args){
        // se puede usar new para inicializar una matriz vacía.
        String[] nameArray1 = new String[5];
        // rellena los elementos vacíos de nameArray1 con el mismo nombre "abc"
        java.util.Arrays.fill(nameArray1,"abc");
        // el bucle for también se puede utilizar para iterar una matriz
        for (String name:nameArray1){
            System.out.println(name);
        }
        // se puede usar algún valor para inicializar la matriz.
        String[] nameArray2 = {"Candy", "Fancy", "Ann", "Ella", "Bob"};
        // se puede obtener la longitud de la matriz
        System.out.println("Length of nameArray2: " + nameArray2.length);
        // se puede obtener el valor por índice
        System.out.println("The last item of nameArray2 is " + nameArray2[4]);
        // ordena un objeto de matriz
        java.util.Arrays.sort(nameArray2);
        System.out.println("Sorted nameArray2 by alphabet:");
        for(String name:nameArray2){
            System.out.println(name);
        }
    }
}

Salida:

Ejecuta el archivo arrayTest.java usando el siguiente comando:

javac /home/labex/project/arrayTest.java
java arrayTest

Ver la salida:

abc
abc
abc
abc
abc
Length of nameArray2: 5
The last item of nameArray2 is Bob
Sorted nameArray2 by alphabet:
Ann
Bob
Candy
Ella
Fancy

Resumen

La mayoría de las tareas consisten en manipular datos como números y cadenas, por lo que utilizar las clases integradas de Java para realizar las tareas es fácil y eficiente. Para usos avanzados, puedes leer la documentación oficial.