日期:2014-05-20  浏览次数:20689 次

大哥大姐帮帮忙,小弟急需啊!!!!!
设计一个程序实现字符串循环移位的功能。例如:输入字符串“abcdef”和循环移位的位数2,程序输出字符串循环移位的结果“cdefab”.

------解决方案--------------------
长度固定是6位么?还是只移动前面两位,你把需求说清楚
------解决方案--------------------
String s="12345";
s=s.substring(2)+s.substring(0,2);
------解决方案--------------------
Java code

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入要移位的字符串:");
        String str = input.next();
        System.out.println("请输入要移位的位数:");
        int num = input.nextInt();
        
        //判断输入时候合法
        if(str.length() <= 0) {
            System.out.println("请输入要移位的字符串!");
            return;
        }
        if(num < 0) {
            System.out.println("移动的位数不能小于0");
            return;
        }
        System.out.println(shift(str,num));
    }
    
    
    /**
     * 循环移动str,移动num位,移动的时候先取模(num % str.length()),然后再移位。
     * @param str 要移位的字符串
     * @param num 移动的位数
     * @return 移位后的字符串
     */
    private static String shift(String str, int num) {
        StringBuffer sb = new StringBuffer();
        sb.append(str.substring(num % str.length()));
        sb.append(str.substring(0,num % str.length()));
        return sb.toString();
    }
}

------解决方案--------------------
简单的截取字符串。