首页 > 解决方案 > 我们可以使用 contains() 方法在变量中查找数字吗?

问题描述

在这个 Java 程序中,我想从键盘输入值并检查变量是否包含某个数字。

我正在使用 contains 方法来确定变量是否包含特定数字。写代码的时候出错了。有人可以解释错误以及如何解决吗?

编码:

package nested_package;

import java.util.Scanner;

public class Age_prog {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        int a = sc.nextInt();
        int b = sc.nextInt();
        System.out.println("a=" + a + "\n" + "b=" + b);
        if (a.contains(1)) {     // ERROR IN THIS LINE
            System.out.println("true");
        } else {
            System.out.println("false");
        }
    }
}

标签: javaloopsmethods

解决方案


您的编译器抱怨的原因是 -- int(and Integer) 在 Java 中没有名为contains(). 该方法属于 String 类。

一种方法是将您的数字转换为字符串并使用该contains方法。
另一种方法——你可以编写你的contains方法来获取两个整数并返回一个布尔值(我命名它containsDigit以避免混淆)。

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    int a = sc.nextInt();
    int b = sc.nextInt();
    
    System.out.println("a=" + a + "\n" + "b=" + b);
    System.out.println(containsDigit(a, 1));
}

private static boolean containsDigit(int a, int b) {
    while (a > 0) {
        if (a % 10 == b) {
            return true;
        }
        a /= 10;
    }
    return false;
}

推荐阅读