Заменить строковый символ, используя только charAt () - PullRequest
0 голосов
/ 04 июля 2018

Я новичок в Java и ООП. В настоящее время я учусь на уроке и у меня следующий вопрос:

Моя задача - заменить некоторые символы в данном предложении, используя только методы length() и charAt().

Мне дали предложение:

«Это буква я!»

этот метод:

public static String replaceCharacter(String w, char b, String v) { 
}

и результат должен выглядеть следующим образом:

"Тосты восточные буквы восток"

Это моя отправная точка. Я понятия не имею, как решить эту проблему без использования substring() метода. Надеюсь, что кто-нибудь может мне помочь и дать некоторые объяснения.

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Хитрость заключается в том, чтобы помнить, что String - это, по сути, просто массив символов, и если мы хотим изменить элементы в массиве, мы можем сделать это с помощью циклов.

Я предполагаю, что:

String w = "This is the letter i!";
char b = 'i';
String v = "east";

Метод тогда:

public static String replaceCharacter(String w, char b, String v) { 
    for (int i = 0; i < w.length(); i++) {
        if (w.charAt(i) != b) {
            // if the character is not 'i', we don't want to replace it
        } else {
            // otherwise, we want to replace it by "east"
        }
    }
}

Выяснить, какой код должен идти в блоке if и else, должно быть легко. Удачи!

0 голосов
/ 04 июля 2018

Просто переберите String и, если charAt(i) равен вашему конкретному char, добавьте замену, в противном случае добавьте charAt(i)

public static String replaceCharacter(String w, char b, String v) {
    String result = "";
    for (int i = 0; i < w.length(); i++) {
        if (w.charAt(i) == b) {
            result += v;
        } else {
            result += w.charAt(i);
        }
    }
    return result;
}

Демо

...