Почему я получаю сообщение об ошибке при использовании в цикле «str.charAt (i) = str.charAt (i + 1)» - PullRequest
0 голосов
/ 11 июля 2019
import java.io.*;
import java.util.Scanner;

class GFG {
    public static void main (String[] args) {
        String str;
        Scanner sc = new Scanner(System.in);
        str = sc.nextLine();

        for(int i=0; i<str.length();)
        {
            if(str.charAt(i)==str.charAt(i+1))
            {
                for(int j=i;j<str.length();j++)
                    str.charAt(j)=str.charAt(j+1); //Here the error occurs
            }
            else
            {
                i++;
            }
        }
        System.out.println(str);
    }
}

Исключение:

error: unexpected type
                str.charAt(j)=str.charAt(j+1);
                          ^
  required: variable
  found:    value
1 error

Ответы [ 2 ]

0 голосов
/ 11 июля 2019

вы используете геттер для установки значения.

используйте что-то вроде этого:

str.setCharAt(j, str.charAt(j+1));
0 голосов
/ 11 июля 2019

str.charAt(j) возвращает значение. Например. Символ "а".

Это было бы эквивалентно написанию этого:

"a" = str.charAt(j+1); // Doesn't work

Вместо этого вы хотите назначить заменить символ строки str.

Вот один из способов сделать это - преобразовать строку в массив символов.

char[] strCharArray= str.toCharArray();
strCharArray[j] = str.charAt(j+1)

В качестве альтернативы вы можете использовать StringBuilder.

StringBuilder str = new StringBuilder();
str.setCharAt(j, str.charAt(j+1));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...