如何检查用户在Java中编写的内容?

时间:2015-05-09 22:48:13

标签: java

我试图在用户写入时尝试这样做开始程序做了一些事情,但我不确定用户实际写的是什么。

这是我第一次尝试:

import java.util.Scanner;

    public class Suhwag {
        public static void main (String args[]){
            Scanner scanNer = new Scanner (System.in);
            System.out.println("Please write \"Start\" to begin.");
            String stinky = "Start";
            if (stinky == scanNer);

但是有了这个,我收到了错误消息:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    Incompatible operand types String and Scanner

在看到错误后,我尝试将scanNer转换为字符串,如下所示:

import java.util.Scanner;

        public class Suhwag {
            public static void main (String args[]){
                Scanner scanNer = new Scanner (System.in);
                System.out.println("Please write \"Start\" to begin.");
                String stinky = "Start";
                String input = scanNer.nextLine();
                if (stinky == scanNer);

但仍会出现相同的错误消息。任何人都知道我能做些什么让它发挥作用?

4 个答案:

答案 0 :(得分:0)

  1. 您正在将String与Scanner对象进行比较。
  2. 您应该使用equals方法来比较String的
  3. if(见下文)
  4. 后不需要分号

    参考您的上一个代码段:

    if (stinky.equals(input)){
        //do something
    }
    

答案 1 :(得分:0)

您正在尝试将Scanner对象与String对象进行比较。首先,您可以使用以下行输入字符串:

String myString = scanNer.next()

然后,将其与“开始”进行比较:

if ( myString.equals( "Start" ) )
{
    ...
}

答案 2 :(得分:0)

在你在if语句中说的后一个代码区域中:

stinky == scaNer

应该是

stinky.equals(input)

答案 3 :(得分:-2)

在你的if语句中,你仍然将你的扫描仪与你的臭味进行比较

将您的if语句更改为此

if (input.equals(stinky)){<code here>}

您之前的代码无效,因为您将扫描仪与字符串进行比较

enter image description here