检查二进制字符串在 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
所以这里是简单的正则表达式算法。
- 循环匹配器(字符串)
- 如果在匹配器中找到上述正则表达式匹配,则字符串无效,否则有效。
// 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