12 - Cadenas de caracteres


En Visual Basic .Net hemos visto que cuando queremos almacenar un valor entero definimos una variable de tipo Ingeger, si queremos almacenar un valor con decimales definimos una variable de tipo Single. Ahora si queremos almacenar una cadena de caracteres (por ejemplo un nombre de una persona) debemos definir una variable de tipo String.

Más adelante veremos en profundidad y detenimiento los conceptos del manejo de String, por ahora solo nos interesa la mecánica para trabajar con cadenas de caracteres.

Problema 1:

Solicitar el ingreso del nombre y edad de dos personas. Mostrar el nombre de la persona con mayor edad.

Programa:

Module Module1

    Sub Main()
        Dim nombre1, nombre2 As String
        Dim edad1, edad2 As Integer
        Console.Write("Ingrese el nombre:")
        nombre1 = Console.ReadLine()
        Console.Write("Ingrese edad:")
        edad1 = Console.ReadLine()
        Console.Write("Ingrese el nombre:")
        nombre2 = Console.ReadLine()
        Console.Write("Ingrese edad:")
        edad2 = Console.ReadLine()
        Console.Write("La persona de mayor edad es:")
        If edad1 = edad2 Then
            Console.Write("Tienen la misma edad")
        Else
            If (edad1 > edad2) Then
                Console.Write(nombre1)
            Else
                Console.Write(nombre2)
            End If
        End If
        Console.ReadKey()
    End Sub

End Module

Para almacenar un nombre debemos definir una variable de tipo String y su ingreso por teclado se hace llamando al método ReadLine del objeto Console:

        nombre1 = Console.ReadLine()

Problema 2:

Solicitar el ingreso de dos nombres de personas. Mostrar un mensaje si son iguales o distintos.

Programa:

Module Module1

    Sub Main()
        Dim nombre1, nombre2 As String
        Console.Write("Ingrese primer nombre:")
        nombre1 = Console.ReadLine()
        Console.Write("Ingrese segundo segundo:")
        nombre2 = Console.ReadLine()
        If nombre1 = nombre2 Then
            Console.Write("Los nombres son iguales")
        Else
            Console.Write("Los nombres son distintos")
        End If
        Console.ReadKey()
    End Sub

End Module

Para comparar si el contenido de dos String son iguales se utiliza el operador = como si se estuvieran comparando dos enteros.
La condición se verifica verdadero si los contenidos de los dos String son exactamente iguales, es decir si cargamos "Martinez" en nombre1 y "martinez" en nombre2 luego retorna falso ya que no es lo mismo la "M" mayúscula y la "m" minúscula.

En el caso que necesitemos considerar igual caracteres mayúsculas y minúsculas veremos más adelante como resolverlo

También funcionan los otros operadores relacionales con el manejo de cadenas de caracteres:

>  (mayor)	(el primer String es mayor alfabéticamente que el segundo)
<  (menor)
>= (mayor o igual)
<= (menor o igual)
= (igual)
<> (distinto)

Retornar