左旋转字符串

xiaoxiao2021-02-27  177

字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。 请定义一个函数实现字符串左旋转操作的功能。比如输入字符串“abcdefg”和

数字 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); } }

转载请注明原文地址: https://www.6miu.com/read-9394.html

最新回复(0)