1

私は現在、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」のタイプと互換性がありません。

これをどのように解決しますか?

ありがとう!

4

5 に答える 5

7

では、その理由は

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

そのエラーは、「=」がJavaの代入演算子であるため、左側が変数でなければならないということです。そうは言っても、あなたはおそらく実際に望んでいます

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

比較演算子 (==) と空白文字 (' ') を使用します。("" は空文字列)

于 2012-07-06T00:57:33.727 に答える
2

比較演算子に対して代入を使用しています。

変化する

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

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

更新:
また、比較時にエラーが発生します。single quotes ( ' )を比較するためにも使用する必要がありますchar。そうしないと、コンパイルされません。

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

ただし、長さゼロのchar が定義されていないため、これもコンパイルされません。スペース
の場合は ' ' など、有効な文字を比較する必要があります。

于 2012-07-06T00:54:50.373 に答える
1

==代入演算子ではなく、等式演算子を使用したい=

于 2012-07-06T00:53:28.407 に答える
1

「==」は、右側の値が左側の変数と同じであることを確認します。

「=」は代入演算子であり、変数を比較するのではなく、変数に値を与えるために使用されます。

于 2012-07-06T00:54:47.037 に答える