假设你有字符串"这是一个测试"
我将它传递给方法zee,就像("这是一个测试",1)并且想要"测试这是一个";
我将它传递给方法zee,就像("这是一个测试",2)并且想要"测试这是";
数字可以超过变量中的总字数.如果它确实应该循环.
我开始......
public static string zee(string origString, int i)
{
StringBuilder sb = new StringBuilder();
ArrayList list = new ArrayList();
list.AddRange(origString.Split(' '));
// not sure here -
for (int c = i; c < (list.Count + i); c++)
{
sb.AppendFormat("{0} ", list[c]);
}
return sb.ToString();
}
Run Code Online (Sandbox Code Playgroud)
for(int j=0; j < list.length; j++){
int idx = (j + i) % list.length;
sb.AppendFormat("{0} " , list[idx]);
}
Run Code Online (Sandbox Code Playgroud)
大多数情况下像布伦特阿里亚斯的解决方案,但我认为for循环更具可读性,不太可能变得无限.
public static string zee(string origString, int i)
{
StringBuilder sb = new StringBuilder();
List<string> list = new List<string>();
list.AddRange(origString.Split(' '));
for (int j = 0; j < list.Count; j++)
{
int idx = (j + i) % list.Count;
sb.AppendFormat("{0} ", list[idx]);
}
return sb.ToString();
}
Run Code Online (Sandbox Code Playgroud)