- 新建一个数组去记录最终的移动结果是怎样的
- 然后再把这个结果赋值给新字符串
- 字符串不能按位赋值
public class Solution {
public String LeftRotateString(String str,int n) {
//循环左移
int len=str.length();
//如果移动的数量和字符串长度相同,不用移
if(n==len)
{
return str;
}
//创建数组去记录字符串的位置怎么变换
int[] ans=new int[len];
//根据正负,去怎么变换字符串的位置
for(int i=0;i<len;i++)
{
if(i-n<0)
{
ans[i]=len-n+i;
}
else{
ans[i]=i-n;
}
}
//根据上面的位置数组去重新调整字符串的位置
String str1=new String();;
for(int i=0;i<len;i++)
{
int j=0;
for(j=0;j<len;j++)
{
if(ans[j]==i)
{
break;
}
}
str1=str1+str.charAt(j);
}
System.out.println(str1);
return str1;
}
}