您的位置:

Java中contains方法的用法和实例

引言

在Java程序中,我们需要使用字符串操作的情况很多,其中一种常见的需求就是判断一个字符串中是否包含某个子串。Java提供了String类的contains方法来满足这一需求。本文将详细介绍contains方法的使用和实例。

正文

1. contains方法介绍

String类的contains方法用于判断一个字符串是否包含某个子串,返回值为true或false。contains方法的声明如下:

    public boolean contains(CharSequence s)

其中,参数s为要查找的子串,返回值为boolean类型。

2. contains方法使用示例

下面是contains方法的使用示例代码:

public class ContainsDemo {
    public static void main(String[] args) {
        String str = "Hello, world!";
    
        // 判断字符串中是否包含指定子串
        boolean result1 = str.contains("world");
        boolean result2 = str.contains("Java");
    
        // 输出结果
        System.out.println("字符串中是否包含'world':" + result1);
        System.out.println("字符串中是否包含'Java':" + result2);
    }
}

该程序输出的结果如下:

    字符串中是否包含'world':true
    字符串中是否包含'Java':false

3. contains方法使用案例

判断手机号码格式是否正确

在开发过程中,我们经常需要验证用户输入的手机号码格式是否正确。因为手机号码格式比较复杂,所以需要使用正则表达式来检查格式。不过,我们可以先使用contains方法来判断字符串中是否包含非法字符从而快速判断手机号码格式是否正确。

下面是一个判断手机号码格式是否正确的示例代码:

public class PhoneNumberValidator {
    public static void main(String[] args) {
        String phoneNumber = "13612345678"; // 假设这是用户输入的手机号码
    
        // 判断手机号码中是否包含非法字符
        boolean isValid = true;
        if (!phoneNumber.contains("+") && !phoneNumber.contains("-")) {
            // 手机号码不包含+或-等非法字符,进行正则表达式验证
            String regex = "^1[3-9]\\d{9}$";
            isValid = phoneNumber.matches(regex);
        } else {
            isValid = false;
        }
    
        // 输出结果
        if (isValid) {
            System.out.println("手机号码格式正确!");
        } else {
            System.out.println("手机号码格式错误!");
        }
    }
}

当用户输入的手机号码符号要求时,程序输出:

    手机号码格式正确!

当用户输入的手机号码不符合要求时,程序输出:

    手机号码格式错误!

在字符串数组中查找特定的字符串

假如我们有一个字符串数组,其中包含若干个字符串。现在我们需要在数组中查找某个特定的字符串,可以使用contains方法来实现。

下面是一个在字符串数组中查找特定的字符串的示例代码:

import java.util.Arrays;

public class StringArray {
    public static void main(String[] args) {
        String[] strArray = {"hello", "world", "Java", "is", "great"};
    
        // 在字符串数组中查找特定的字符串
        boolean result1 = Arrays.stream(strArray).anyMatch(str -> str.contains("world"));
        boolean result2 = Arrays.stream(strArray).anyMatch(str -> str.contains("Python"));
    
        // 输出结果
        System.out.println("数组中是否包含'world':" + result1);
        System.out.println("数组中是否包含'Python':" + result2);
    }
}

该程序输出的结果如下:

    数组中是否包含'world':true
    数组中是否包含'Python':false

结论

contains方法是Java String类中非常实用的方法,用于判断一个字符串中是否包含某个子串,它简单易用,可以帮助我们快速解决许多字符串操作问题。