1. ホーム
  2. java

[解決済み】代入の左手は必ず変数 CharAt

2022-01-18 05:36:58

質問

現在、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
    }
}

この部分でエラーが発生しています。

        if (user.charAt(counter) = "") 

エラーは

代入の左辺は変数でなければなりません。

これを"=="に変更しましたが、今度は別のエラーが発生します。

左の部分式 "char" の型は、右の部分式 "java.lang.String" の型と互換性がありません。

どのように解決すればよいのでしょうか?

ありがとうございます。

解決方法は?

で、その理由ですが

if (user.charAt(counter) = "") 

は、javaでは代入演算子なので、左辺は変数でなければならないというエラーになります。とはいえ、おそらく実際には

if (user.charAt(counter) == ' ')

で、比較演算子(==)とスペース文字(' ')を使用します。(""は空文字列)