CADENAS EN C PRN 1152019 ING ASENCIO LAS

  • Slides: 28
Download presentation
CADENAS EN C# PRN 115/2019 ING. ASENCIO

CADENAS EN C# PRN 115/2019 ING. ASENCIO

LAS CADENAS EN C# • Las cadenas, string, de C# no son, simplemente, un

LAS CADENAS EN C# • Las cadenas, string, de C# no son, simplemente, un conjunto de caracteres contiguos en memoria, como en otros lenguajes, sino que son instancias de la clase String. • Existen dos formas de crear una cadena en C#, mediante un literal y mediante el empleo de un constructor explicito. PRN 115/2019. Ing. Asencio

CREACION DE CADENAS EN C# • Para crear una cadena con un literal y

CREACION DE CADENAS EN C# • Para crear una cadena con un literal y asignarle una referencia puede emplearse una sentencia como la siguiente: • string saludo = “Buenos días”; • Creación de una cadena mediante el empleo de un constructor explicito: • char [ ] arr = { 'H' , 'o', 'l', 'a' }; • string saludo = new string(arr); • Console. Write. Line(saludo); PRN 115/2019. Ing. Asencio

CREACION DE CADENAS EN C# • Otros constructores que posee la clase String, son:

CREACION DE CADENAS EN C# • Otros constructores que posee la clase String, son: • public String ( char c , int cuantos ) • Crea un String con el carácter especificado como parámetro repetido un cierto número de veces. Ejemplo: • char caracter = '/ '; • string repeticion = new string(caracter, 10); • Console. Write. Line(repeticion); PRN 115/2019. Ing. Asencio

CREACION DE CADENAS EN C# • public String ( char [ ] arr ,

CREACION DE CADENAS EN C# • public String ( char [ ] arr , int desde , int longitud) • Crea una nueva instancia de la clase String con los caracteres almacenados en un array, desde la posición especificada por el parámetro desde y la longitud indicada mediante el parámetro longitud. • Ejemplo: • char [ ] arr = { 'E', 's', 't', 'a', 'e', 's', 'u', 'n', 'a', ' ', • 'p', 'r', 'u', 'e', 'b', 'a' }; • string oracion = new string(arr, 8, 10); • Console. Write. Line(oracion); PRN 115/2019. Ing. Asencio

COMPARACION DE CADENAS • La comparación de cadenas se basa en el orden numérico

COMPARACION DE CADENAS • La comparación de cadenas se basa en el orden numérico del código de caracteres; es decir, que al comparar cadenas, C# va comparando sucesivamente los códigos Unicode de los caracteres correspondientes en ambas cadenas y si encuentra un carácter diferente o una de las cadenas finaliza, detiene la comparación. • Para que dos cadenas sean iguales han de tener el mismo número de caracteres y cada carácter de una ser igual al correspondiente carácter de la otra PRN 115/2019. Ing. Asencio

COMPARACION DE CADENAS • Al comparar cadenas, la presencia de un carácter, aunque sea

COMPARACION DE CADENAS • Al comparar cadenas, la presencia de un carácter, aunque sea el espacio en blanco, se considera mayor que su ausencia. Además la comparación de cadenas distingue entre mayúsculas y minúsculas, puesto que su código no es el mismo, las mayúsculas tienen un número de código menor que las minúsculas. • Para comparar cadenas, pueden usarse tanto el método Equals como el operador = = ; ambos comparan las cadenas para ver si tienen el mismo valor. Ejemplo: PRN 115/2019. Ing. Asencio

char [ ] arr = {'M', 'e', 'j', 'i', 'c', 'a', 'n', 'o', 's'};

char [ ] arr = {'M', 'e', 'j', 'i', 'c', 'a', 'n', 'o', 's'}; string nombre 1 = "Juan"; string ciudad 1 = new string(arr); string nombre 2 = "Juana"; string ciudad 2 = new string(arr); // Comparación con Equals if (ciudad 1. Equals(ciudad 2)) Console. Write. Line("{0} y {1} son de la misma ciudad", nombre 1, nombre 2); else Console. Write. Line("{0} y {1} son de distinta ciudad", nombre 1, nombre 2); // comparación con = = if(ciudad 1 == ciudad 2) Console. Write. Line("{0} y {1} son de la misma ciudad", nombre 1, nombre 2); else Console. Write. Line("{0} y {1} son de distinta ciudad", nombre 1, nombre 2); PRN 115/2019. Ing. Asencio

COMPARACION DE CADENAS LEIDAS DESDE EL TECLADO Console. Write. Line("Digite el nombre"); string nombre

COMPARACION DE CADENAS LEIDAS DESDE EL TECLADO Console. Write. Line("Digite el nombre"); string nombre 1 = Console. Read. Line(); Console. Write. Line("Digite la ciudad"); string ciudad 1 = Console. Read. Line(); Console. Write. Line("Digite el nombre"); string nombre 2 = Console. Read. Line(); Console. Write. Line("Digite la ciudad"); string ciudad 2 = Console. Read. Line(); if(ciudad 1 == ciudad 2) Console. Write. Line("{0} y {1} son de la misma ciudad", nombre 1, nombre 2); else Console. Write. Line("{0} y {1} son de distinta ciudad", nombre 1, nombre 2); Console. Read. Key(); PRN 115/2019. Ing. Asencio

COMPARACION DE CADENAS • Para comparar los valores de dos cadenas y determinar si

COMPARACION DE CADENAS • Para comparar los valores de dos cadenas y determinar si una es menor, mayor o igual que otra se puede emplear el método Compare. To, su sintaxis es: • public int Compare. To(string cad) • Devuelve 0 cuando las cadenas son iguales; • Devuelve un número negativo si la cadena que invoca a Compare. To es menor que la cadena que se le pasa como argumento y • Devuelve un número positivo cuando la cadena que se le pasa como argumento es menor. • No distingue entre mayúsculas y minúsculas. PRN 115/2019. Ing. Asencio

COMPARACION DE CADENAS • • • • char[] arr 1= { 'J', 'u', 'a',

COMPARACION DE CADENAS • • • • char[] arr 1= { 'J', 'u', 'a', 'n'}; string cad 1 = new string(arr 1); char[] arr 2 = { 'J', 'u', 'a', 'n', 'a' }; string cad 2 = new string(arr 2); Console. Write. Line("La cadena "); if(cad 1. Compare. To(cad 2)<0) Console. Write. Line("{0} es menor que {1} ", cad 1, cad 2); else if(cad 1. Compare. To(cad 2) == 0) Console. Write. Line("{0} es igual que {1} ", cad 1, cad 2); else Console. Write. Line("{0} es mayor que {1} ", cad 1, cad 2); PRN 115/2019. Ing. Asencio

CONCATENACION DE CADENAS • Concatenar cadenas significa unir varias cadenas en una sola conservando

CONCATENACION DE CADENAS • Concatenar cadenas significa unir varias cadenas en una sola conservando el orden de los caracteres en cada una de ellas. • En C# es posible concatenar cadenas usando tanto el operador + como el método concat • Ejemplo con operador + : PRN 115/2019. Ing. Asencio

 • • • char[] arr = { '5', '+', '7' }; string cad

• • • char[] arr = { '5', '+', '7' }; string cad 1 = new string(arr); string cad 2 = "; string operacion = cad 1 + cad 2; Console. Write. Line(operacion); • // La salida es 5 + 7 = • PRN 115/2019. Ing. Asencio

 char[] arr = { 'U', 'n', 'a', 'c', 'a', 'd', 'e', 'n', 'a'

char[] arr = { 'U', 'n', 'a', 'c', 'a', 'd', 'e', 'n', 'a' }; string regla = new string(arr); regla = regla + " puede contener numeros"; Console. Write. Line(regla); OJO: Estas sentencias no cambian la cadena original, sino que C# adquiere una nueva zona de memoria para la nueva cadena. Copia la antigua en la nueva y añade la nueva parte, la referencia regla ahora apunta hacia la nueva cadena, la vieja cadena queda disponible para la recolección de basura. PRN 115/2019. Ing. Asencio

CONCATENACION DE CADENAS • • • Ejemplo con el método concat: char[] arr =

CONCATENACION DE CADENAS • • • Ejemplo con el método concat: char[] arr = { '5', '+', '7' }; string cad 1 = new string(arr); string cad 2 = "; string operacion = string. Concat(cad 1 , cad 2); Console. Write. Line(operacion); // 5 + 7 = PRN 115/2019. Ing. Asencio

CONVERSION DE CADENAS • Podemos convertir cadenas de caracteres a números, y viceversa; para

CONVERSION DE CADENAS • Podemos convertir cadenas de caracteres a números, y viceversa; para ello empleamos los métodos de la clase Convert. • int x = 57 ; • string y = Convert. To. String(x); • Console. Write. Line(y); • string a = "123"; • int n = Convert. To. Int 32(a); • Console. Write. Line(n); PRN 115/2019. Ing. Asencio

CONVERSION DE CADENAS • Para hacer conversiones entre char y string podemos usar esta

CONVERSION DE CADENAS • Para hacer conversiones entre char y string podemos usar esta instrucción: • char letra = Convert. To. Char("x"); string cad = Convert. To. String('a'); • Console. Write. Line("{0} {1}", letra, cad); • Ejemplo de aplicación: PRN 115/2019. Ing. Asencio

 • • string fecha = "31/12/2016"; char[ ] v = new char [

• • string fecha = "31/12/2016"; char[ ] v = new char [ fecha. Length ] ; Console. Write. Line("Original: ") ; for (int i = 0 ; i < fecha. Length ; i++) { v[ i ] = Convert. To. Char( fecha[ i ] ) ; Console. Write(v[ i ]) ; } • • Console. Write. Line("n. Modificado: ") ; for (int i = 0 ; i < v. Length ; i++) { if (v[ i ] == ‘ / ') v[ i ] = ‘ - ‘ ; Console. Write(v[ i ]) ; PRN 115/2019. Ing. Asencio }

CORRECCION DE CADENAS • Los métodos para modificar cadenas de caracteres, en realidad crean

CORRECCION DE CADENAS • Los métodos para modificar cadenas de caracteres, en realidad crean una nueva cadena, en vez de modificar la original. Algunos de ellos: • To. Lower • El método To. Lower convierte cualquier letra mayúscula que se encuentre en una cadena en letra minúscula. En el siguiente ejemplo: • cadena 1 = “Esta Es Una Prueba"; • Cadena 2 = cadena 1. To. Lower( ); • Coloca la cadena “esta es una prueba" en cadena 2 PRN 115/2019. Ing. Asencio

CORRECCION DE CADENAS • To. Upper • El método To. Upper realiza una operación

CORRECCION DE CADENAS • To. Upper • El método To. Upper realiza una operación similar a la de To. Lower, pero cambia las letras minúsculas por sus equivalentes en mayúscula. En el siguiente ejemplo: • • cadena 1 = "C Sharp"; cadena 2 = cadena 1. To. Upper( ); cadena 2 toma el valor "C SHARP". PRN 115/2019. Ing. Asencio

CORRECCION DE CADENAS • Insert • Este método nos permite insertar caracteres en una

CORRECCION DE CADENAS • Insert • Este método nos permite insertar caracteres en una posición específica de la cadena. Por ejemplo: • string cadena 1 = "Programación en C Sharp"; • string cadena 2 = cadena 1. Insert(16, "Visual "); Console. Write. Line(cadena 2); • La impresión es "Programación en Visual C Sharp" PRN 115/2019. Ing. Asencio

CORRECCION DE CADENAS • Trim • El método Trim elimina espacios a ambos extremos

CORRECCION DE CADENAS • Trim • El método Trim elimina espacios a ambos extremos de una cadena. Por ejemplo: • • string cadena 1 = " Informática "; string cadena 2 = cadena 1. Trim( ); Console. Write. Line(cadena 2); cadena 2 se imprime como “Informática". PRN 115/2019. Ing. Asencio

CORRECCION DE CADENAS • Replace devuelve una cadena resultante de reemplazar todas las apariciones

CORRECCION DE CADENAS • Replace devuelve una cadena resultante de reemplazar todas las apariciones de un carácter o cadena con un nuevo carácter o cadena. • Ejemplo: PRN 115/2019. Ing. Asencio

CORRECCION DE CADENAS • string cad = "31/12/2016“ ; • string nueva = cad.

CORRECCION DE CADENAS • string cad = "31/12/2016“ ; • string nueva = cad. Replace( ‘ / ‘ , ‘ - ') ; • Console. Write. Line(nueva) ; PRN 115/2019. Ing. Asencio

CORRECCION DE CADENAS • Split • El método Split identifica las subcadenas existentes en

CORRECCION DE CADENAS • Split • El método Split identifica las subcadenas existentes en una cadena detimitada por los caracteres especificados en un array y las devuelve a través de otro array • Ejemplo: PRN 115/2019. Ing. Asencio

CORRECCION DE CADENAS • • • string cad = "31/12/2016“ ; char[ ] delimitadores

CORRECCION DE CADENAS • • • string cad = "31/12/2016“ ; char[ ] delimitadores = { '/' } ; string[ ] subcad = cad. Split(delimitadores) ; for (int i = 0 ; i < subcad. Length ; i++) Console. Write. Line(subcad[ i ]); if (subcad[1] == "12") subcad[1] = "Dic"; for (int i = 0; i < subcad. Length; i++) Console. Write("{0} ", subcad[i]); PRN 115/2019. Ing. Asencio

 • Dada una cadena inicializada con cualquier frase. Imprima la frase en mayúsculas

• Dada una cadena inicializada con cualquier frase. Imprima la frase en mayúsculas y la cantidad de "artículos" (el, la o lo) encontrados en la frase. • Ej. salida “ 2 veces el, 3 veces la, 0 veces lo”*/ PRN 115/2019. Ing. Asencio

 • • • • • • • /*40. Dada una cadena inicializada con

• • • • • • • /*40. Dada una cadena inicializada con cualquier texto Imprima la frase en mayúsculas y la cantidad de "artículos" (el, la o lo) encontrados en la frase. Ej. salida “ 2 veces el, 3 veces la, 0 veces lo”*/ string cadena; int el = 0, la = 0, lo = 0; Console. Write. Line("Digite una frase"); cadena = Console. Read. Line(); string cadena 1 = cadena. To. Upper(); Console. Write. Line(cadena 1); char[] delimitadores = { ' ' }; string[] subcad = cadena 1. Split(delimitadores); for (int i = 0; i < subcad. Length; i++) { //Console. Write. Line(subcad[i]); if (subcad[i] == "EL") el++; else if (subcad[i] == "LA") la++; else if (subcad[i] == "LO") lo++; } Console. Write. Line("El articulo el se encuentra {0} veces ", el); Console. Write. Line("El articulo la se encuentra {0} veces ", la); Console. Write. Line("El articulo lo se encuentra {0} veces ", lo); PRN 115/2019. Ing. Asencio