字符串左移位

来源:互联网 发布:deepin linux 安装 编辑:程序博客网 时间:2024/04/29 15:57
/* * 字符串左移,如abcdefghi左移4位后为efghiabcd */public class ShiftLeft {static String reverStr(String s){int low = 0;int high = s.length()-1;char[] temp = new char[s.length()];while(low <= high){temp[low] = s.charAt(high);temp[high] = s.charAt(low);low++;high--;}return String.valueOf(temp);}/** *  * @param s 要移位的字符串 * @param digits  向左移动的位数 */static String shift(String s,int digits){if(digits==0){return s;}else if(digits>0){digits = digits % s.length();String left = reverStr(s.substring(0, digits));String right = reverStr(s.substring(digits));String result = reverStr(left+right);return result;}else{//此时变为向右移digits位,即向左移动s.length() - digits位digits = -digits;digits = digits % s.length();return shift(s,s.length()-digits);}}public static void main(String[] args) {String s = "abcdefghi";System.out.println(shift(s,-3));}}