Вернуть строку, созданную в цикле for - PullRequest
0 голосов
/ 16 сентября 2018

Цель состояла в том, чтобы создать метод String toUppercase, если он не существует.Я получил большую часть кода, но как вернуть строку, созданную в цикле for?

public String toUpperCase(String str)
{
    for (int i = 0; i > str.length; i++){
        char a = str.charAt(i);
        char b = Character.toUpperCase(a);
        String t = Character.toString(b);
    }
    return t;
}

Ответы [ 4 ]

0 голосов
/ 16 сентября 2018

Вам необходимо переместить ваш аккумулятор (t) за пределы цикла и инициализировать его пустым значением. Однако я бы начал с создания метода static (поскольку он не использует никаких данных экземпляра). Далее, я бы предпочел StringBuilder в качестве моего аккумулятора. И я бы использовал String.toCharArray(), чтобы я мог использовать расширенный цикл для каждого. Как,

public static String toUpperCase(String str) {
    StringBuilder sb = new StringBuilder();
    for (char ch : str.toCharArray()) {
        sb.append(Character.toUpperCase(ch));
    }
    return sb.toString();
}
0 голосов
/ 16 сентября 2018

Вы должны создать пустую строку вне цикла, а затем добавить к ней символ с помощью +=

Пример:

public String toUpperCase (String str) {
  String res = "";
  for (int i = 0; i < str.length(); i++) {
    char a = str.charAt(i);
    char b = Character.toUpperCase(a);
    res += Character.toString(b);
  }
  return res;
}
0 голосов
/ 16 сентября 2018

Вы пытаетесь написать эту функцию?

public String toUpperCase(String str)
{
    String t = "";

    for (int i = 0; i < str.length(); i++){
        char a = str.charAt(i);
        char b = Character.toUpperCase(a);
        t = t + Character.toString(b);
    }

    return t;
}

Простое:

str.toUpperCase() 

недостаточно?

0 голосов
/ 16 сентября 2018

Объявите t вне цикла и присвойте внутри цикла +=.

public String toUpperCase(String str)
    {
        String t = "";
        for (int i = 0; i < str.length(); i++){
            char a = str.charAt(i);
            char b = Character.toUpperCase(a);
            t += Character.toString(b);
        }
        return t;
    }

Это то, что вы бы сделали, если бы такого метода не было.Кроме того, следующим шагом было бы позаботиться о производительности, а влияние кучи может использовать StringBuilder.Но все эти основные операции уже доступны в java.lang.String зачем заново изобретать колесо?

...