为什么在循环中使用“ str.charAt(i)= str.charAt(i + 1)”时出现错误

时间:2019-07-11 14:44:47

标签: java

system(sys)

例外:

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);
    }
}

2 个答案:

答案 0 :(得分:0)

str.charAt(j)返回一个值。例如。字符“ a”。

这等同于编写此代码:

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

相反,您要分配替换字符串str的字符。

这里的一种方法是将字符串转换为char数组。

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

或者,您可以使用StringBuilder。

StringBuilder str = new StringBuilder();
str.setCharAt(j, str.charAt(j+1));

答案 1 :(得分:0)

您正在使用吸气剂设置值。

使用类似这样的内容:

str.setCharAt(j, str.charAt(j+1));