在字符串中移动字符

the*_*age 5 java arrays string char

String newStr;

public RandomCuriosity(String input){
    newStr = input;
}

public void shiftChars(){
    char[] oldChar = newStr.toCharArray();
    char[] newChar = new char[oldChar.length];
    newChar[0] = oldChar[oldChar.length-1];
    for(int i = 1; i < oldChar.length; i++){
        newChar[i] = oldChar[i-1];
    }
    newStr = String.valueOf(newChar);
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个将字符向前移动一个方法.例如,输入可以是:

输入: Stackoverflow

输出: wStackoverflo

我是怎么做到的,我改变了一个字符串的实例.将该字符串转换为char数组(调用它oldChar),将最后一个索引指定oldChar为第一个索引newChar,并创建一个for循环,将第一个索引oldChar作为新Char数组的第二个索引,依此类推.最后,我将char数组转换回字符串.

我觉得我做得太多,做一些非常简单的事情.有没有更有效的方法来做这样的事情?

编辑感谢您的答案!

JB *_*zet 13

newStr = newStr.charAt(newStr.length() - 1) + newStr.substring(0, newStr.length() - 1);
Run Code Online (Sandbox Code Playgroud)