0

因此,我输入了两个字符串,并在 mString 中查找 subString。当我将方法更改为布尔值时,它会返回正确的输出 true 或 false(通过在 contains 语句上使用 return)。

我不知道如何使用该语句来检查包含运算符的结果。我已经完成了以下工作。

public class CheckingString
{

    public static void main(String[] args)
    {
        // adding boolean value to indicate false or true
        boolean check;

        // scanner set up and input of two Strings (mString and subString)
        Scanner scan = new Scanner(System.in);
        System.out.println("What is the long string you want to enter? ");
        String mString = scan.nextLine();
        System.out.println("What is the short string that will be looked for in the long string? ");
        String subString = scan.nextLine();

        // using the 'contain' operator to move check to false or positive.
        // used toLowerCase to remove false negatives
        check = mString.toLowerCase().contains(subString.toLowerCase());

        // if statement to reveal resutls to user
        if (check = true)
        {
            System.out.println(subString + " is in " + mString);
        }
        else
        {
            System.out.println("No, " + subString + " is not in " + mString);
        }
    }

}

有没有办法使该检查字段正常工作以在 if-else 语句中返回一个值?

4

4 回答 4

5
if (check = true){

应该:

if (check == true){

通常你会写:

if(check)

检查真假

和:

if(!(check)) 

或者:

如果(!检查)

检查假的。

于 2012-11-21T03:40:01.997 回答
5

小错误:

改为if(check = true)if(check == true)只是if (check)

通过这样做check = true,您将 true 分配给检查,因此条件if(check = true)将始终为 true。

于 2012-11-21T03:40:57.170 回答
0

在 if 语句中使用布尔变量的首选方法是

if (check)

请注意,您不需要使用相等运算符,这样可以避免您犯的错误。

于 2012-11-21T03:43:40.667 回答
0

尝试一下

 if (check) {
        System.out.println(subString + " is in " + mString);
    } else {
        System.out.println("No, " + subString + " is not in " + mString);
    }
于 2012-11-21T03:43:50.663 回答