La pregunta es complicada, pero la explicaré en detalle.Cómo hacer el siguiente paso de una cadena. C#
El objetivo es hacer una función que devolverá el siguiente "paso" de la cadena dada.
Por ejemplo
String.Step("a"); // = "b"
String.Step("b"); // = "c"
String.Step("g"); // = "h"
String.Step("z"); // = "A"
String.Step("A"); // = "B"
String.Step("B"); // = "C"
String.Step("G"); // = "H"
Hasta aquí es bastante fácil, pero teniendo en cuenta que la entrada es una cadena que puede contener más de 1 caracteres y la función debe comportarse de esta manera.
String.Step("Z"); // = "aa";
String.Step("aa"); // = "ab";
String.Step("ag"); // = "ah";
String.Step("az"); // = "aA";
String.Step("aA"); // = "aB";
String.Step("aZ"); // = "ba";
String.Step("ZZ"); // = "aaa";
y así sucesivamente ...
Esto no significa exactamente necesita para extender la clase String base.
Traté de resolverlo con cada uno de los caracteres de los valores ASCII pero me atasqué con las cadenas que contenían 2 caracteres.
Realmente apreciaría si alguien puede proporcionar el código completo de la función.
Gracias de antemano.
EDITAR * Siento haber olvidado mencionar antes de que la función de "reanálisis" la cadena de auto generada cuando su longitud alcanza n.
continuation of this function will be smth like this. for example n = 3
String.Step("aaa"); // = "aab";
String.Step("aaZ"); // = "aba";
String.Step("aba"); // = "abb";
String.Step("abb"); // = "abc";
String.Step("abZ"); // = "aca";
.....
String.Step("zzZ"); // = "zAa";
String.Step("zAa"); // = "zAb";
........
lo siento que no he mencionado antes, después de leer algunas respuestas me di cuenta de que el problema estaba en cuestión.
Sin esto, la función siempre producirá el carácter "a" n veces después del final del paso.
¿Por qué no publicar lo que ha intentado? –
La entrada siempre es a-zA-Z – George
Lo siento, olvidé agregar la pregunta principal: S. Pregunta editada. – George