/*
* 字符串左移,如abcdefghi左移4位后为efghiabcd */
publicclassShiftLeft {
staticString reverStr(String s){
intlow = 0;
inthigh = s.length()-1;
char[] temp = newchar[s.length()];
while(low <= high){
temp[low] = s.charAt(high);
temp[high] = s.charAt(low);
low++;
high--;
}
returnString.valueOf(temp);
} /**
*
* @param s 要移位的字符串
* @param digits 向左移动的位数
*/
staticString shift(String s,intdigits){
if(digits==0){
returns;
}elseif(digits>0){
digits = digits % s.length();
String left = reverStr(s.substring(0, digits));
String right = reverStr(s.substring(digits));
String result = reverStr(left+right);
returnresult;
}else{ //此时变为向右移digits位,即向左移动s.length() - digits位
digits = -digits;
digits = digits % s.length();
returnshift(s,s.length()-digits);
}
}
publicstaticvoidmain(String[] args) {
String s = "abcdefghi";
System.out.println(shift(s,-3));
}
}