📌  相关文章
📜  检查二进制字符串在 1 之间是否有 0 |第 2 组(正则表达式方法)

📅  最后修改于: 2022-05-13 01:57:07.278000             🧑  作者: Mango

检查二进制字符串在 1 之间是否有 0 |第 2 组(正则表达式方法)

给定一个 0 和 1 的字符串,我们需要检查给定的字符串是否有效。当 1 之间不存在零时,给定的字符串是有效的。例如,1111、0000111110、1111000 是有效字符串,但 01010011、01010、101 不是。

例子:

Input : 100
Output : VALID

Input : 1110001
Output : NOT VALID
There is 0 between 1s

Input : 00011
Output : VALID

在 Set 1 中,我们讨论了字符串有效性的一般方法。在这篇文章中,我们将讨论相同的正则表达式方法,它很简单。

我们知道,如果字符串中的 1 之间有零,则字符串无效。因此,下面是无效字符串模式的正则表达式之一。

10+1

所以这里是简单的正则表达式算法。

  1. 循环匹配器(字符串)
  2. 如果在匹配器中找到上述正则表达式匹配,则字符串无效,否则有效。
// Java regex program to check for valid string
  
import java.util.regex.Matcher;
import java.util.regex.Pattern;
  
class GFG 
{
    // Method to check for valid string
    static boolean checkString(String str)
    {
        // regular expression for invalid string
        String regex = "10+1";
          
        // compiling regex
        Pattern p = Pattern.compile(regex);
          
        // Matcher object
        Matcher m = p.matcher(str);
          
        // loop over matcher
        while(m.find())
        {
            // if match found,
            // then string is invalid
            return false;
        }
           
        // if match doesn't found
        // then string is valid
        return true;    
    }
  
    // Driver method
    public static void main (String[] args)
    {
        String str = "00011111111100000";
          
        System.out.println(checkString(str) ? "VALID" : "NOT VALID");
    }
}

输出:

VALID