[.NET - CSharp] Nice Little String Rotator
These string rotator methods appeared in a chain of recent posts on the DOTNET-CLR list. I recorded them here because they may prove useful.
A substring approach:
public static string RotateLeftSubstring (string s, int start, int length, int amount) { // Allow amount to be negative (as far as -length) amount = (length+amount) % length; return s.Substring(0, start)+ s.Substring(start + amount, length-amount) + s.Substring(start, amount) + s.Substring(start + length, s.Length - (start+length) ); }
A StringBuilder approach:
public static string Rotate(string s, int start, int length, int amount) { StringBuilder sb = new StringBuilder(s); for (int i = 0; i < length; ++i) { sb[start + i] = s[start + ((i + amount) % length + length) % length]; } return sb.ToString(); }