字符串中的互换字符

时间:2018-10-06 16:44:16

标签: java string character

我有一个字符串。

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
}

这是完成任务的有效方法吗?还是可以建议我一种更有效的方法?

4 个答案:

答案 0 :(得分:3)

您可以使用子字符串解决方案,但这是使用正则表达式的替代解决方案:

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

答案 1 :(得分:2)

您可以使用子字符串:

testString.substring(1) + testString.substring(0, 1)

答案 2 :(得分:1)

为什么不只是

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

编辑:

或者只使用substring而不用长度。

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

答案 3 :(得分:1)

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

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

这只是避免从word创建子字符串。