赋值的左侧必须是可变CharAt

01j*_*yss 1 java string variable-assignment

我目前有java的以下代码.

public class lesson8
{
    static Console c;           // The output console

    public static void main (String[] args)
    {
        c = new Console ();

        String user;
        int length, counter, spacecounter;
        spacecounter=0;
        c.print("Enter a string. ");
        user = c.readLine();

        length = (user.length()-1);

        for (counter=0;counter<length;counter++) 
        {
            if (user.charAt(counter) = "") 
            {
                spacecounter++;
            }
        }

        c.println("There are "+spacecounter+" spaces in your string.");
        c.println("There are "+counter+" characters in your string.");

        // Place your program here.  'c' is the output console
        // main method
    }
}
Run Code Online (Sandbox Code Playgroud)

我在这部分收到错误:

        if (user.charAt(counter) = "") 
Run Code Online (Sandbox Code Playgroud)

错误是

赋值的左侧必须是变量.

我将其更改为"==",但现在又出现了另一个错误:

左子表达式"char"的类型与右子表达式"java.lang.String"的类型不兼容.

我该如何解决这个问题?

谢谢!

Den*_*eng 7

那么,之所以如此

if (user.charAt(counter) = "") 
Run Code Online (Sandbox Code Playgroud)

给出错误的是"="是java中的赋值运算符,因此左侧必须是变量.话虽这么说,你可能真的想要

if (user.charAt(counter) == ' ')
Run Code Online (Sandbox Code Playgroud)

它使用比较运算符(==)和空格字符('').(""是一个空字符串)