java - 在字符串中移动字符

标签 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);
}

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

输入:Stackoverflow

输出:wStackoverflo

我是如何做到的,我改变了一个字符串的实例。将该字符串转换为 char 数组(称为 oldChar),将 oldChar 的最后一个索引指定为 newChar 的第一个索引,并制作了一个 for 循环,将 oldChar 的第一个索引作为我的新 Char 数组的第二个索引,依此类推。最后,我将 char 数组转换回字符串。

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

编辑感谢您的精彩回答!

最佳答案

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

关于java - 在字符串中移动字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20252195/

相关文章:

c - 在单独的函数中访问数组指针

javascript - 如何用不同的数字替换字符串中的每个数字?

java - Eclipse 巨大的 CPU 峰值

java - 如何处理复合模式中的添加、删除功能?

javascript - 理解 javascript 中的 for 循环

java - 为什么 ".concat(String)"比 "+"快这么多?

java - 正则表达式匹配 2 个或更多逗号

java - FindBugs 命令行 : how to specify the project to be analyzed?

java - 为 Java 8 方法引用提供类型参数

python - NumPy 的 savetxt 在为每一列定义 fmt 时不导出定界符