java策略模式使用正则表达式的方法
时间: 2023-10-24 19:57:41 浏览: 42
在Java中使用策略模式结合正则表达式的方法如下:
1. 首先,定义一个策略接口,例如 `RegexStrategy`,其中包含一个方法用于匹配正则表达式:
```java
public interface RegexStrategy {
boolean match(String input);
}
```
2. 创建具体的策略类实现接口 `RegexStrategy`,例如 `EmailRegexStrategy`,用于匹配邮箱地址:
```java
public class EmailRegexStrategy implements RegexStrategy {
private static final String EMAIL_REGEX = "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}";
@Override
public boolean match(String input) {
return input.matches(EMAIL_REGEX);
}
}
```
3. 创建策略上下文类 `RegexContext`,用于接收一个策略对象,并提供一个方法用于执行策略:
```java
public class RegexContext {
private RegexStrategy strategy;
public void setStrategy(RegexStrategy strategy) {
this.strategy = strategy;
}
public boolean executeStrategy(String input) {
return strategy.match(input);
}
}
```
4. 在使用的时候,可以先创建一个策略上下文对象,然后根据需要设置不同的策略,最后执行策略:
```java
public class Main {
public static void main(String[] args) {
RegexContext context = new RegexContext();
// 设置 Email 正则策略
context.setStrategy(new EmailRegexStrategy());
String input = "test@example.com";
boolean isMatch = context.executeStrategy(input);
System.out.println("Input: " + input);
System.out.println("Match: " + isMatch);
}
}
```
以上就是使用策略模式结合正则表达式的方法。在实际使用中,可以根据需求创建不同的策略类,并在策略上下文中动态切换策略,实现灵活的正则表达式匹配功能。