C # Fundamentos de la Serie - 2 cadenas

Un método común de Cadena

Las variables de cadena declarativos

C # series Existen dos estados comunes:

  1. Eso literal directamenteString s = "12321";
  2. Utilizando el constructor, es decir,String s = new String("12321");

características de la secuencia

String(Cadena) no puede pertenecer a la mayoría de las variables en el desarrollo del lenguaje, cualquier genera una nueva cadena de cambios cadena será. ¿Por qué es así, la razón se almacena en forma de caracteres Array cadena como datos en la memoria. Al mismo tiempo, Stringhay una característica muy interesante: la cadena después de la primera declaración, el programa recordará la cadena actual ha sido declarado, no cuando el nuevo trazado de la memoria para el siguiente uso.
En este punto hay una muy interesantes (retraso mental) se enfrentan con cuestiones:

Los siguientes son tres maneras de generar un total de varios espacio de memoria:

  1. cadena s1 = "sa1234";
  2. cadena s2 = "sa" + "1234";
  3. s3 String = nueva cadena (s1);

Muchas personas, incluyendo un cierto desarrollo de edad serían vistos como cuatro, luego en la realidad, S2 y S1 mientras apunta a una dirección que es de dos.
Ah? ¿No es un poco raro?

Esto es porque en C #, literal tiene una característica, si la declaración declara una variable durante el uso son literal valor de prioridad calculada (es decir, no variable) o constante, entonces la variable de proceso se declara, entonces puntos variables a una constante.
Que en string s2 = "sa"+"1234";esta expresión, primero "sa" y "1234" en una sola cadena, y luego se asigna a s2. No es un área de memoria de primera división "SA", a continuación, una división del área de memoria "1234", y finalmente se fusionaron en "sa1234". 1 y 2 son tan directamente a "sa1234".

constructor de cadena

stringEl constructor de un total de lo siguiente:

  1. public String(char c, int count);
  2. public String(char[] value);
  3. public String(char[] value, int startIndex, int length);
  4. otro

En primer lugar: la generación de un número en una cadena que consta de recuento c, no hay otros caracteres.
Ejemplo: string s = new String('a',10);//s="aaaaaaaaaa"
Segundo: matriz de caracteres valor en una cadena, la cadena es igual a la matriz de caracteres a su vez conectado a la cadena resultante
Ejemplo: string s = new String(new char[]{'a','b','c','d','e'});//s = "abcde"
Tercero: el elemento porción de empalme matriz de caracteres es un valor de cadena
Ejemplo:

var chars = new char[] {'A', 'V', 'a', 'b', 'c', 'd', 'e'};
var sr = new string(chars, 0, 5);//sr = "AVabc"

Cuarto: Esto incluye algún código no seguro que utiliza punteros. Esta sección tendrá la oportunidad de ser introducido.

Sin embargo, aquí nos encontramos con un problema, new string(string str)en el que, en lugar de utilizar un frente de new string("12321")derecha?
El hecho es que no hay ningún constructor. Por lo tanto, cuando utilizamos new string("12321")cuando, en realidad, ¿qué es? Claramente se puede ver que se está tomando el segundo , el sistema será la cadena como un conjunto de caracteres que se pasan al stringconstructor. Esta es nuestra manera de exponer la cadena almacenada en la memoria - el conjunto de caracteres. Inmutabilidad visto una serie de hecho similar con la matriz.

cadena nula

Hay una muy interesantes propiedades estáticas de la clase string: string.Empty. Es una constante que indica una cadena vacía. cadena vacía, como su nombre indica: una cadena vacía, no contiene ningún carácter, pero no nulo.

La diferencia entre una cadena vacía y NULL

  • cadena vacía es una cadena de 0 de; longitud no es NULL, si se le obliga a lanzar una excepción adquirida .length
  • Cualquier método no puede ser llamado objeto de cadena NULL; una cadena cadenas vacías pueden llamar a todos los métodos
  • Puntos a una cadena vacía en una dirección en la memoria, NULL hay punto

La determinación de si la cadena está vacía:

  1. Si la cadena es una cadena vacía:
string str = string.Empty;
bool result = str == "" || str == string.Empty || str.Length == 0;
  1. Si la cadena es una referencia nula:
string str = null;
bool result = str == null;

Además de estos métodos tediosos, C # para nosotros para aumentar el apoyo interno para un método por defecto:

string.IsNullOrEmpty(value)

El método para verificar que la cadena es NULL o una cadena vacía y devuelve un resultado de la verificación
, por supuesto, en el proceso de desarrollo que por lo general necesitan no sólo no es NULL o una cadena vacía, tener una cadena no vacía de caracteres. Esta vez en la necesidad de utilizar este método: string.IsNullOrWhiteSpace(value).

Más atención debe estar agradecido a mi blog

archivo

Supongo que te gusta

Origin www.cnblogs.com/c7jie/p/12559597.html
Recomendado
Clasificación