1. ホーム
  2. java

[解決済み] 文字列内の文字を移動させる

2022-02-11 11:32:29

質問

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

文字を1つずつ前にずらすメソッドを作りました。例えば、入力は以下のようになります。

入力された Stackoverflow

出力です。 wStackoverflo

どうやったかというと、文字列のインスタンスを変異させたのです。その文字列を char 配列(これを oldChar の最後のインデックスを割り当てました。 oldChar の最初のインデックスとして newChar の最初のインデックスを取得するforループを作成しました。 oldChar の2番目のインデックスとして、新しい Char といった具合に配列になります。最後に、char配列を文字列に変換して戻しました。

何かやりすぎた感があります。 非常に 単純なことです。このようなことをするために、もっと効率的な方法はないのでしょうか?

EDIT 素晴らしい回答をありがとうございました。

どのように解決するのですか?

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