Почему не меняется символ в StringBuild? - PullRequest
3 голосов
/ 30 мая 2020

Чтобы заменить в этой строке строчные буквы, необходимо ввести символ с консоли. Но отображается то же слово, и символ не меняется.

public class Task {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder(requestString());
        char symbol = requestSymbol().charAt(0);
        int count = 0;

        for (int i = 0; i < sb.length(); i++) {
            if (sb.charAt(i) == symbol) {
                sb.setCharAt(i, sb.charAt(Character.toUpperCase(i)));
                count++;
            }
        }
        System.out.println("Number of entries: " + count);
        System.out.println("Converted string: " + sb);
    }

    static String requestString() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter string:");
        return scanner.nextLine();
    }

    static String requestSymbol() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter the symbol:");
        return scanner.next();
    }
}

1 Ответ

3 голосов
/ 30 мая 2020

Похоже проблема со строкой:

sb.setCharAt(i, sb.charAt(Character.toUpperCase(i)));

Должно быть:

sb.setCharAt(i, Character.toUpperCase(symbol));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...