Java 字符串交换字符

Java 字符串交换字符,java,string,character,Java,String,Character,我有一根绳子 String word = "Football"; 我需要将字符串的第一个字符放在字符串的最末尾。这是我的解决办法 public class charToString{ public static void main(String[] args){ String testString = "Football"; char[] stringToCharArray = testString.toCharArray(); for

我有一根绳子

String word = "Football";
我需要将字符串的第一个字符放在字符串的最末尾。这是我的解决办法

public class charToString{
    public static void main(String[] args){
        String testString = "Football";
        char[] stringToCharArray = testString.toCharArray();

        for(int i=0;i<(stringToCharArray.length-1);i++){
            char temp = stringToCharArray[i];
            stringToCharArray[i]= stringToCharArray[i+1];
            stringToCharArray[i+1] = temp;

        }//end of for

        String resulT = new String(stringToCharArray); //result with desired output
        System.out.println(resulT);
    }// end of main
}
公共类图表绘制{
公共静态void main(字符串[]args){
String testString=“Football”;
char[]stringtocharray=testString.tocharray();

对于(int i=0;i您使用子字符串的解决方案很好,但这里有一个使用正则表达式的替代解决方案:

String word = "Football";
String result = word.replaceAll("^(.)(.*)$", "$2$1");
System.out.println(result);

可以使用子字符串:

testString.substring(1) + testString.substring(0, 1)
为什么不

word = word.substring(1, word.length()) + word.charAt(0);
编辑:

或者只需使用不带长度的
子字符串

word = word.substring(1) + word.charAt(0);

比子字符串和连接更有效的解决方案是使用
StringBuilder

String result =
    new StringBuilder(word.length())
        .append(word, 1, word.length())
        .append(word, 0, 1) // or .append(word.charAt(0))
        .toString();

这简单地避免了从
word

创建子字符串,这可能会更简单。
String str2=testString.substring(1)+testString.substring(0,1)
它为我返回
ootballF
。@NicholasK:我认为你犯了一个错误:上面应该可以工作(用
jshell
测试)。