Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Profesora: Alumno:
ii
INTRODUCCION
2
Cadena de caracteres
En programación, una cadena de caracteres, palabras, ristra de caracteres o
frase (string, en inglés) es una secuencia ordenada (de longitud arbitraria,
aunque finita) de elementos que pertenecen a un cierto lenguaje formal o
alfabeto análogas a una fórmula o a una oración. En general, una cadena de
caracteres es una sucesión de caracteres (letras, números u otros signos o
símbolos). Si no se ponen restricciones al alfabeto, una cadena podrá estar
formada por cualquier combinación finita de los caracteres disponibles (las
letras de la 'a' a la 'z' y de la 'A' a la 'Z', los números del '0' al '9', el espacio
en blanco ' ', símbolos diversos '!', '@', '%', etcétera).
En este mismo ámbito, se utilizan habitualmente como un tipo de dato
predefinido, para palabras, frases o cualquier otra sucesión de caracteres. En
este caso, se almacenan en un vector de datos, o matriz de datos de una sola
fila (array, en inglés). Las cadenas se pueden almacenar de manera física:
seguidas;
enlazadas letras a letra.
Generalmente los caracteres se guardan uno a continuación de otro para fines
de eficiencia en el acceso.
Un caso especial de cadena es la que contiene cero caracteres. A esta cadena
se la llama cadena vacía; en teoría de autómatas, es común representarla por
2
Comparación: Se utiliza para comparar dos cadenas.
Representación
Una cadena suele ser representada entre comillas dobles superiores
("palabra"), mientras que un carácter de esa cadena (un char en inglés) suele
ser representado entre comillas simples ('p'). Por ejemplo, en C:
charAt c = 'a';
char str[5] = "hola";
Generalmente para acceder a un carácter en una posición determinada se suele
usar la forma variable [posición] como cuando se accede a un vector.
Para poder mostrar una comilla (") dentro de la cadena y no tener problemas
con las comillas que la delimitan, se usan secuencias de escape. Esto se aplica a
otros caracteres reservados o no imprimibles como el retorno de carro. No
obstante, las expresiones para producir estas secuencias de escape dependen
del lenguaje de programación que se esté usando. Una forma común, en muchos
lenguajes, de escapar un carácter es anteponiéndole un «\» (sin comillas), p. e.:
«\"» (sin comillas).
2
Ejemplos de operaciones comunes
Asignación
Asignar una cadena a otra.
char *strcpy(char [], const char[]); # en C
cadena1=cadena2; # en C++
cadena1 := cadena2 # en Smalltalk
Concatenación
Unir dos cadenas de caracteres.
pareja = "Joshua" + " y " + "Marina" # en Python
$pareja = "Joshua"." y "."Marina" # en Perl y PHP
pareja = "Luisa" & " y " & "Carmen" # en Visual Basic
pareja = "Luisa" + " y " + "Carmen"; # en C++ y Java con la clase String
pareja := 'Luisa' , ' y ' , 'Carmen'. # en Smalltalk
strcat(cadena1,cadena2); strcat(cadena1, cadena3); # en C (Debe haber
suficiente espacio en la primera.)
Comparación
Comparar dos cadenas en orden lexicográfico.
int strcmp(const char[], const char[]); # en C Devuelve <0 si la 1ª es menor, > 0
si es mayor y 0 si son iguales.
2
cadena1 == cadena2; cadena1>cadena2; etc. # en C++ Devuelve un valor de
verdad.
cadena1 = cadena2 # en Smalltalk Devuelve true o false.
Multiplicar una cadena
Repetir varias veces una cadena.
$puntos ="." x 5 # pone 5 puntos en Perl.
puntos := Generator generateJoin: '.' repeat: 5. # Genera una cadena de 5
puntos en Smalltalk.
puntos = "." * 5 # Genera una cadena de 5 puntos en Python.
2
Cadenas (Guía de programación de C#)
// Initialize to null.
string message2 = null;
2
Tenga en cuenta que el operador new no se utiliza para crear un objeto de
cadena, salvo cuando se inicialice la cadena con una matriz de caracteres.
Inicialice una cadena con el valor constante Empty para crear un nuevo objeto
String cuya cadena tiene una longitud cero. La representación literal de cadena
de una cadena de longitud cero es "". Mediante la inicialización de cadenas con
el valor Empty en lugar de null, puede reducir las posibilidades de que se
produzca una excepción NullReferenceException. Utilice el método estático
IsNullOrEmpty(String) para comprobar el valor de una cadena antes de
intentar tener acceso a ésta.
System.Console.WriteLine(s1);
// Output: A string is more than the sum of its chars.
Dado que "modificar" una cadena consiste en realidad en crear una cadena
nueva, debe actuar con precaución al crear referencias a las cadenas. Si crea
una referencia a una cadena y después "modifica" la cadena original, la
referencia seguirá señalando al objeto original en lugar de al nuevo objeto que
se creó cuando se modificó la cadena. En el siguiente código se muestra este
comportamiento:
2
C#
string s1 = "Hello ";
string s2 = s1;
s1 += "World";
System.Console.WriteLine(s2);
//Output: Hello
Utilice cadenas textuales para mayor comodidad y una mejor legibilidad cuando
el texto de la cadena contiene caracteres de barra diagonal inversa, por
ejemplo en rutas de acceso de archivo. Dado que las cadenas textuales
conservan los caracteres de nueva línea como parte del texto de la cadena,
pueden utilizarse para inicializar cadenas de múltiples líneas. Utilice las
comillas dobles para incrustar comillas en una cadena textual. En el ejemplo
siguiente se muestran algunos usos habituales de las cadenas textuales:
2
C#
string filePath = @"C:\Users\scoleridge\Documents\";
//Output: C:\Users\scoleridge\Documents\
string text = @"My pensive SARA ! thy soft cheek reclined
Thus on mine arm, most soothing sweet it is
To sit beside our Cot,...";
/* Output:
My pensive SARA ! thy soft cheek reclined
Thus on mine arm, most soothing sweet it is
To sit beside our Cot,...
*/
string quote = @"Her name was ""Sara.""";
//Output: Her name was "Sara."
Secuencia Codificación
Nombre del carácter
de escape Unicode
\' Comilla simple 0x0027
\" Comilla doble 0x0022
\\ Barra diagonal inversa 0x005C
\0 Null 0x0000
\a Alerta 0x0007
\b Retroceso 0x0008
\f Avance de página 0x000C
\n Nueva línea 0x000A
\r Retorno de carro 0x000D
\t Tabulación horizontal 0x0009
Secuencia de escape Unicode para pares
\U \Unnnnnnnn
suplentes.
\u Secuencia de escape Unicode \u0041 = "A"
\v Tabulación vertical 0x000B
Secuencia de escape Unicode similar a "\u" a
\x \x0041 = "A"
excepción de la longitud variable.
Cadenas de formato
2
Una cadena de formato es una cadena cuyo contenido puede determinarse
dinámicamente en tiempo de ejecución. Para crear una cadena de formato se
utiliza el método estático Format y se incrustan marcadores de posición entre
llaves que se reemplazarán por otros valores en tiempo de ejecución. En el
ejemplo siguiente se utiliza una cadena de formato para generar el resultado
de cada iteración de un bucle:
C#
class FormatString
{
static void Main()
{
// Get user input.
System.Console.WriteLine("Enter a number");
string input = System.Console.ReadLine();
Subcadenas
2
Una subcadena es cualquier secuencia de caracteres incluida en una cadena.
Utilice el método Substring para crear una nueva cadena a partir de un
segmento de la cadena original. Puede buscar una o más apariciones de una
subcadena con el método IndexOf. Utilice el método Replace para reemplazar
todas las apariciones de una subcadena especificada por una cadena nueva. Al
igual que el método Substring, Replace devuelve en realidad una cadena nueva y
no modifica la cadena original.
C#
string s3 = "Visual C# Express";
System.Console.WriteLine(s3.Substring(7, 2));
// Output: "C#"
System.Console.WriteLine(s3.Replace("C#", "Basic"));
// Output: "Visual Basic Express"
2
StringBuilder para modificar los caracteres individuales "en contexto" y crear
a continuación una nueva cadena para almacenar los resultados mediante los
métodos StringBuilder. En el ejemplo siguiente, suponga que debe modificar la
cadena original de una forma determinada y almacenar a continuación los
resultados para su uso futuro:
C#
string question = "hOW DOES mICROSOFT wORD DEAL WITH THE cAPS
lOCK KEY?";
System.Text.StringBuilder sb = new System.Text.StringBuilder(question);
2
static void Main()
{
string str = "hello";
string nullStr = null;
string emptyStr = String.Empty;
// The null character can be displayed and counted, like other chars.
string s1 = "\x0" + "abc";
string s2 = "abc" + "\x0";
// Output of the following line: * abc*
Console.WriteLine("*" + s1 + "*");
// Output of the following line: *abc *
Console.WriteLine("*" + s2 + "*");
// Output of the following line: 4
Console.WriteLine(s2.Length);
}
2
algunos escenarios, como en bucles de pequeñas dimensiones que se ejecutan
cientos o miles de veces, las operaciones de cadena pueden afectar al
rendimiento. La clase StringBuilder crea un búfer de cadena que proporciona
un mayor rendimiento si el programa realiza muchas manipulaciones de cadenas.
La cadena StringBuilder también permite reasignar los caracteres individuales,
algo que el tipo de datos String integrado no admite. Por ejemplo, este código
cambia el contenido de una cadena sin crear una nueva cadena:
C#
System.Text.StringBuilder sb = new System.Text.StringBuilder("Rat: the ideal
pet");
sb[0] = 'C';
System.Console.WriteLine(sb.ToString());
System.Console.ReadLine();
//Outputs Cat: the ideal pet
En este ejemplo, se utiliza un objeto StringBuilder para crear una cadena a
partir de un conjunto de tipos numéricos:
C#
class TestStringBuilder
{
static void Main()
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
// Create a string composed of numbers 0 - 9
for (int i = 0; i < 10; i++)
{
sb.Append(i.ToString());
}
System.Console.WriteLine(sb); // displays 0123456789
// Copy one character of the string (not possible with a System.String)
sb[0] = sb[9];
System.Console.WriteLine(sb); // displays 9123456789
}
}
CONCLUSION
2
Las operaciones de cadena en .NET están muy optimizadas y, en la mayoría de
los casos, no tienen un impacto significativo en el rendimiento.
Una cadena vacía es una instancia de un objeto System.String que contiene
cero caracteres.
Las cadenas vacías se utilizan habitualmente en distintos escenarios de
programación para representar un campo de texto en blanco.
Puede utilizar la notación de matrices con un valor de índice para obtener
acceso de sólo lectura a caracteres individuales.
Una subcadena es cualquier secuencia de caracteres incluida en una cadena.
Utilice el método Substring para crear una nueva cadena a partir de un
segmento de la cadena original.
Una cadena de formato es una cadena cuyo contenido puede determinarse
dinámicamente en tiempo de ejecución.
Los objetos de cadena son inmutables, es decir, no pueden modificarse una vez
creados.