Поменять символ в строке - PullRequest
0 голосов
/ 06 октября 2018

У меня есть строка.

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 голосов
/ 06 октября 2018

Более эффективным решением, чем подстрока и конкатенация, было бы использование StringBuilder:

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

Это просто позволяет избежать создания подстрок из word.

0 голосов
/ 06 октября 2018

Вы можете использовать подстроки:

testString.substring(1) + testString.substring(0, 1)
0 голосов
/ 06 октября 2018

Почему бы не просто

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

РЕДАКТИРОВАТЬ:

Или просто использовать substring без длины.

word = word.substring(1) + word.charAt(0);
0 голосов
/ 06 октября 2018

Ваше решение, использующее подстроку, хорошо, но вот альтернативное решение, использующее регулярное выражение:

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