我是编程新手,我正在尝试编写一个程序,将文本字符串中的字符移动到指定的位置。
程序必须包含一个方法,其输入将是文本字符串(类型字符串)和位置数(类型int
)。输出将是一个字符移位的字符串。
例如,移动4个位置:
rabbit eats a carrot it eats a carrotrabb
现在我有了这个部分代码。我可以删除第一个字符,但我不知道如何将它们放在本文末尾。我该怎么做?
public static void main(String[] args) {
System.out.println("enter the text: ");
Scanner cti = new Scanner(System.in);
String a = cti.nextLine();
System.out.println("enter number of positions= ");
int b = cti.nextInt();
char firstLetter = a.charAt(0);
b--;
a = a.substring(b);
String m = a + firstLetter ;
System.out.println("now it is "+ m);
}
答案 0 :(得分:1)
public String foo(String s, int n) {
String s2 = s.substring(0, n);
s = s.substring(n) + s2;
return s;
}
你可以对此进行一些验证,如空字符串或n小于s.length()等。
答案 1 :(得分:1)
如果你使用正则表达式,它只是一行:
return str.replaceAll("^(.{" + n + "})(.*)", "$2$1");
答案 2 :(得分:0)
import java.util.*;
public class JavaApplication5 {
public static void main(String[] args) {
System.out.println("enter the text: ");
Scanner cti = new Scanner(System.in);
String a = cti.nextLine();
System.out.println("enter number of positions= ");
int b = cti.nextInt();
String firstPart = a.substring(0,b); // line 1
b--;
a = a.substring(b);
String m = a + firstPart ; // line 2
System.out.println("now it is "+ m);
}
}

请在注释第1行和第2行标记的声明中查看上述更改。
在第1行中,我们得到字符串的第一部分,在第2行,在第二个字符串部分的末尾添加。
答案 3 :(得分:0)
最好使用模数运算符来计算班次数。当初始移位数大于字符串长度时。检查一下:
public String shift(String string,int n){
int nshift = string.length() < n ? n%string.length() : n ;
String a = string.substring(0,nshift);
return string.substring(nshift) + a ;
}
答案 4 :(得分:0)
还有一个版本。所有工作基本上都在这里完成:
String result = new StringBuilder(a).delete(0, b).append(a.substring(0,b)).toString();
无论如何,完整的代码是:
import java.util.*;
public class ShiftLetters {
public static void main(String[] args) {
System.out.print("enter the text: ");
Scanner cti = new Scanner(System.in);
String a = cti.nextLine();
System.out.print("Enter number of positions: ");
int b = cti.nextInt();
String result = new StringBuilder(a).delete(0, b).append(a.substring(0,b)).toString();
System.out.println(result);
}
}
此外,您可能希望更准确地使用缩进样式来提高可读性。