Compiler says Java code is invalid

2019-08-24 02:06发布

I am working on a Java code:

import java.util.Scanner;

public class main
{
    static Scanner console = new Scanner (System.in);
    public static void main (String aurgs[]) {

        System.out.print("Which function would you like to vist? L for Lottery, R for Random Math");
        char lotto = 'l';
        char rdm = 'b';

        if (console.nextChar() = lotto) /**error is here*/ {
            lottery();
        }
    }
    public static void lottery (String aurgs[]) {
        String announ = "Your lottery numbers for today are: ";
        System.out.print(announ);
        int [] numbers = {15, 68, 25, 66};
        double lucky = 50.2;
        for (int i: numbers )
            System.out.print(i + "\n");

        String announ2 = "Your lucky number is: ";
        System.out.println(announ2 + lucky);
        }
}

When I compile it, BlueJ says:

cannot find symbol - method nextChar()

I do not understand what is wrong.

标签: java bluej
3条回答
神经病院院长
2楼-- · 2019-08-24 02:31

In order to get a char from a Scanner you need to use next(), which returns a String. Then just get the first char from that.

char x = console.next().charAt(0);
查看更多
趁早两清
3楼-- · 2019-08-24 02:33

The Scanner class has no nextChar() method. The methods available are listed here, none of which are nextChar(). You can instead use next() and read a single character as a string.

查看更多
Root(大扎)
4楼-- · 2019-08-24 02:42

I do not understand what is wrong.

It is simple. Scanner doesn't have nextChar() method.

If you want to read characters with Scanner you can change its delimiter to empty string ""

console.useDelimiter("");

and use next() method.


Also you should add one more = in

if (console.nextChar() = lotto)

if you want to compare chars (single = is used for assigning values).

查看更多
登录 后发表回答