La domanda è complicata ma la spiegherò nei dettagli.Come eseguire il prossimo passo di una stringa. C#
L'obiettivo è eseguire una funzione che restituirà il "passo" successivo della stringa specificata.
Per esempio
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"
Fin qui è abbastanza facile, ma tenendo a mente che l'input è una stringa che può contenere più di 1 caratteri e la funzione deve comportarsi in questo modo.
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";
e così via ...
Questo non è esattamente bisogno di estendere la classe base String.
Ho provato a elaborare i valori ASCII di ciascun carattere ma sono rimasto bloccato con stringhe contenenti 2 caratteri.
Sarei davvero grato se qualcuno possa fornire il codice completo della funzione.
Grazie in anticipo.
EDIT * Mi dispiace di aver dimenticato di dire in precedenza che la funzione "di analisi", la stringa di sé generato quando la sua lunghezza raggiunge 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";
........
Mi dispiace che non ho menzionato in precedenza, dopo aver letto alcune risposte mi sono reso conto che il problema era in questione.
In caso contrario, la funzione produrrà sempre il carattere "a" n volte dopo la fine del passaggio.
Perché non pubblicare ciò che hai provato? –
L'input è sempre a-zA-Z – George
Mi dispiace ho dimenticato di aggiungere la domanda principale: S. Domanda modificata. – George