循环移位方法返回字符串类型

来源:互联网 发布:怒火攻心2是真干吗知乎 编辑:程序博客网 时间:2024/06/10 23:19


import java.util.Scanner;
public class shiftCycle {

 public static String shift(String s,boolean q,int i)
 {
  //i为移位个数,s为输入的字符串,q为控制左右移位方向
  String result;
  char[] ch = new char[s.length()];
  if(q==true){
  System.out.println("右移"+i+"位结果:");
   for(int p=0;p<s.length();p++){
    ch[p]=s.charAt((p+i-1)%s.length());
   }
   //System.out.println();
   result = String.valueOf(ch);
  }
  else{
   System.out.println("左移"+i+"位结果:");
   for(int p=0;p<s.length();p++){
    ch[p]=s.charAt((p+i)%s.length());
   }
   result = String.valueOf(ch);
  }
  return result;
 }
 public static void main(String[] args) {
  System.out.println("输入字符串:");
  Scanner scan = new Scanner(System.in);   //用到了scanner方法
  String s = scan.next();
  System.out.println("右移输入true,左移输入false");
  boolean q = scan.nextBoolean();
  System.out.println("请输入移位个数:"); 
  int i = scan.nextInt(); 
  String result = shift(s,q,i);
  System.out.print(result);
  //shiftCycle.shift(s, q, i);类调用static方法
  //new shiftCycle().shift(s, q, i);//对象调用static 方法
 }
}

输入字符串:
abcdef
右移输入true,左移输入false
true
请输入移位个数:
3
右移3位结果:
cdefab

输入字符串:
abcde
右移输入true,左移输入false
false
请输入移位个数:
3
左移3位结果:
deabc

0 0