Левая сторона задания должна быть переменной ошибкой - PullRequest
0 голосов
/ 18 июня 2020
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        char temp;
        char temp2;
        System.out.println("Enter Word");
        String x = in.next();
        System.out.println("Your Word has " + x.length()+ " Letters" + "\n");
        int[] array = new int[x.length()];
        for(int i = 0; i < array.length; i++){
            array[i] = x.charAt(i);
        }   
        temp = x.charAt(0);
        **x.charAt(0) = x.charAt(x.length);
        x.charAt(x.length()) = temp;**
        System.out.println(x);

    }

}

Я хотел поменять местами первую букву и последнюю букву слова, но получаю эту ошибку The Left Hand Side Of An Assignment Must Be A Variable Ошибка в X.charAt(0) = x.charAt(x.length) x.charAt(x.length()) = temp; Извините, если это глупый вопрос, я новичок в программировании .

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Как сказал другой ответ, x.charAt (0) не является переменной.

Так что:

x.charAt(0) = x.charAt(x.length()-1);

не сработает.

In Java Строки не подлежат изменению. Поэтому, если вы действительно хотите написать алгоритм, который должен изменять символы строки на месте, я бы предложил использовать StringBuilder:

StringBuilder sb = new StringBuilder(x);
sb.setCharAt(0, x.charAt(x.length()-1));

Примечание: x.charAt (x.length () ) находится за концом String, поскольку индексы начинаются с 0. Вот почему я добавил -1.

Когда вы закончите редактировать свой StringBuilder , вы можете его преобразовать обратно к строке вроде этого:

result = sb.toString();
0 голосов
/ 18 июня 2020

x.charAt(0) или x.charAt(x.length()) не является переменной, а просто возвращает значение. Для присвоения значения в левой части должна быть переменная. Строковый объект неизменен. Вы можете использовать StringBuilder или создать массив символов, а затем поменять местами.

char arr[] = x.toCharArray();
char tmp = arr[x.length-1];
arr[x.length-1] = arr[0];
arr[0] = tmp;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...