Как назначить строки из temp для returnString? - PullRequest
1 голос
/ 06 марта 2019

Цель состоит в том, чтобы полностью изменить ток строки. Я знаю, что есть более простые и эффективные способы перевернуть строку, но нам пришлось придумать наш собственный метод для назначения.

temp присваивается последний символ в строке, затем второй до последнего, затем третий до последнего и т. Д., По одному за раз. Мне нужно выяснить, как назначить эти отдельные строки для returnString в обратном порядке исходной строки.

String current = "Reverse this string.";
String returnString;
for (int i = 1; i <= current.length(); ++i) {
    String temp = current.substring(current.length() - i, current.length() - i + 1);
    returnString = ??? 
}

Ответы [ 3 ]

1 голос
/ 06 марта 2019

Вам нужно начать с пустой строки, поэтому:

String returnString = "";

Затем добавьте к ней строку temp:

returnString = returnString + temp;

Оператор + объединяетСтроки.

Для x = x + a: x += a существует сокращение, поэтому вы можете написать:

returnString += temp;

Обратите внимание, что это неэффективно, так как новая строка создается каждый раз, когда выиспользуйте + или += - вы получите более эффективное решение с StringBuilder, потому что у него есть буфер символов, который он изменяет по мере добавления, а не создает совершенно новые буферы внутри объектов String.

0 голосов
/ 06 марта 2019

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

    String current = "Reverse this string.";
    char c[] = current.toCharArray();
    char out[] = new char[c.length];

    int index = 0;
    for (int i = c.length -1; i >= 0; i--) {
        out[index++] = c[i];
    }
    String str = new String (out);
    System.out.println(str);

output

.gnirts siht esreveR
0 голосов
/ 06 марта 2019

Один из способов сделать это (все еще неэффективно):

String current = "Reverse this string.";
String returnString = "";
for (char c : current.toCharArray()) {
    returnString = Character.toString(c) + returnString;
}

Это работает, беря каждый символ из строки ввода по порядку и добавляя его в начало результирующей строки.Таким образом, в конце концов, последний символ ввода добавляется в начало вывода.

Например:

Input: "abc"

Loop 1:
    returnString = "a"

Loop 2:
    returnString = "ba"

Loop 3:
    returnString = "cba"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...