数字 2.该函数左旋转 2 位得到的结果“cdefgab"
方法一:
import java.util.*; public class StringLeftRotate_1 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNextLine()){ String str = sc.nextLine();//nextLine()的输入是碰到回车就终止输入,而next()方法是碰到空格,回车,Tab键都会被视为终止符 int a =sc.nextInt(); String str1=leftRorate(str,a); System.out.println(str1); } sc.close(); } public static String leftRotate(String str,int num){ if(str==null || str.length()==0) return null; StringBuilder sb =new StringBuilder(); if(str==null||str.length()==0||num<0) return null; String str1=str.substring(num,str.length()); sb.append(str1); String str2=str.substring(0,num); sb.append(str2); String str3=new String(sb); return str3; } } 方法二: import java.util.*; public class StringLeftRotate_2 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNextLine()){ String str = sc.nextLine();//nextLine()的输入是碰到回车就终止输入,而next()方法是碰到空格,回车,Tab键都会被视为终止符 int a =sc.nextInt(); String str1=leftRorate(str,a); System.out.println(str1); } sc.close(); } public static String leftRotate(String str,int num){ if(str==null || str.length()==0) return null; //定义一个字符容器,用来装新的字符 char [] ch=new char[str.length()]; char [] ch1=str.toCharArray(); int m=0; for(int i=num;i<str.length();i++){ ch[m]=ch1[i]; m++; } for(int j=0;j<num;j++){ ch[m]=ch1[j]; m++; } String str1=new String(ch); return str1; } } 方法三: import java.util.Scanner; public class StringLeftRotate_3 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNextLine()){ String str = sc.nextLine();//nextLine()的输入是碰到回车就终止输入,而next()方法是碰到空格,回车,Tab键都会被视为终止符 int a =sc.nextInt(); String str1=leftRorate(str,a); System.out.println(str1); } sc.close(); } public static String leftRotate(String str,int num){ if(str==null || str.length()==0) return null; //定义一个字符容器,用来装新的字符 char [] ch=new char[str.length()]; int m=0; for(int i=num;i<str.length();i++){ ch[m]=str.charAt(i); m++; } for(int j=0;j<num;j++){ ch[m]=str.charAt(j); m++; } String str1=new String(ch); //String str1=String.valueOf(ch); return str1; } } 方法四: import java.util.Scanner; public class StringLeftRotate_4 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); while(sc.hasNextLine()){ String str = sc.nextLine();//nextLine()的输入是碰到回车就终止输入,而next()方法是碰到空格,回车,Tab键都会被视为终止符 int a =sc.nextInt(); new StringLeftRotate_4().leftRotate(str,a); } sc.close(); } public static void leftRotate(String sentence,int index){ if(sentence==null||index>sentence.length()||index<0){ return ; } String[] splitString={sentence.substring(0,index), sentence.substring(index,sentence.length())}; StringBuffer resultbBuffer=new StringBuffer(); for(String s:splitString){ resultbBuffer.append(reverse(s)); } System.out.println(reverse(resultbBuffer.toString())); } public static String reverse(String str) { char[] array=str.toCharArray(); for(int i=0;i<(array.length+1)/2;i++) { char temp=array[i]; array[i]=array[array.length-1-i]; array[array.length-1-i]=temp; } return String.valueOf(array); } }