字符串左移或右移,java实现

来源:互联网 发布:免费网站源码 编辑:程序博客网 时间:2024/06/06 12:45
(群硕)8. 编写一个函数,作用是把一个char组成的字符串循环右移n个。

 比如原来是"abcdefghi"如果n=2,移位后应该是"hiabcdefgh"。 (以字符串和n为入参;允许使用库函数。注意考虑程序的健壮性。)

public class StrYouYi2 {/* * (群硕)8. 编写一个函数,作用是把一个char组成的字符串循环右移n个。 * 比如原来是"abcdefghi"如果n=2,移位后应该是"hiabcdefgh"。 (以字符串和n为入参;允许使用库函数。注意考虑程序的健壮性。) */public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入一连串字符串:");String str = sc.next();System.out.println("请输入左移或右移的位数:");int num = sc.nextInt();System.out.println("左移" + num + "位:" + leftMove(str, num));System.out.println("右移" + num + "位:" + RightMove(str, num));}private static String RightMove(String str, int num) {// 右移思想:整体反转,部分反转str = reChange(str);String first = str.substring(0, num);String right = str.substring(num);first = reChange(first);right = reChange(right);str = first + right;return str;}private static String leftMove(String str, int num) {String first = str.substring(0, num);String last = str.substring(num);first = reChange(first);last = reChange(last);String re = first + last;re = reChange(re);return re;}private static String reChange(String str) {// TODO Auto-generated method stubchar[] ch = str.toCharArray();char temp;for (int i = 0; i < ch.length / 2; i++) {temp = ch[i];ch[i] = ch[ch.length - i - 1];ch[ch.length - i - 1] = temp;}return String.valueOf(ch);}}


原创粉丝点击