2 días, hubo una pregunta relacionada con string.LastIndexOf(String.Empty)
devolver el último índice de cadena:String.Empty en las cadenas hace
Do C# strings end with empty string?
Así que pensé que; una cadena siempre puede contener String.Empty entre personajes como:
"testing" == "t" + String.Empty + "e" + String.Empty +"sting" + String.Empty;
Después de esto, quería probar si String.IndexOf(String.Empty)
regresaba 0 porque desde String.Empty
puede haber entre cualquier caracter en una cadena, que sería lo que yo esperaba para volver y no estaba equivocado.
string testString = "testing";
int index = testString.LastIndexOf(string.Empty); // index is 6
index = testString.IndexOf(string.Empty); // index is 0
En realidad, regresaron 0. empecé a pensar que si podía dividir una cadena con String.Empty
, me gustaría tener al menos 2 de cuerda y los que serían String.Empty
y resto de la cadena desde String.IndexOf(String.Empty)
devuelve 0 y regresaron String.LastIndexOf(String.Empty)
longitud de la cadena .. Esto es lo que codifiqué:
string emptyString = string.Empty;
char[] emptyStringCharArr = emptyString.ToCharArray();
string myDummyString = "abcdefg";
string[] result = myDummyString.Split(emptyStringCharArr);
el problema aquí es, obviamente, no puedo convertir String.Empty
-char[]
y el resultado en una cadena vacía []. Realmente me encantaría ver el resultado de esta operación y la razón detrás de esto. Así que mis preguntas son:
¿Hay alguna manera de dividir una cadena con
String.Empty
?Si no es posible, pero en un mundo absoluto que sería posible, ¿devolvería una matriz llena de caracteres como
[0] = "t" [1] = "e" [2] = "s"
y así sucesivamente o simplemente devolvería la cadena completa? ¿Qué tendría más sentido y por qué?
Dado que "ab" == "a" + string.empty + "b" esperaría que "ab" .split (string.empty) devuelva "a" y "b" y si pudiera obtener todos los índices de string.empty en "ab" esperaría que fuera 0,1. Entonces, MSDN establece que indexof (string.empty) devolvería 0 y lastIndex (string.empty) devolvería el último índice de cadena. ¿Significa que realmente comprueban si el parámetro entrante es string.empty y regresan desde allí o hay alguna lógica detrás? – Pabuc
Pero, "ab" + string.Empty + "c", y luego divide eso, no obtendrías esas dos partes si pudieras, obtendrías 3 partes. string.Empty equivale a una cadena vacía, de ahí el nombre, y no puede encontrarlo realmente después de agregarlo a una cadena. –
Sí, realmente comprueban el parámetro entrante. String.Empty no es un personaje especial, realmente es _nothing_. No se encuentra entre cada personaje, por lo que dividirlo no tendría sentido. En todo caso, debería devolver la cadena original. – Rob