1.java实现——正规表达式判断
目标:这个代码仅局限于所展示的正规表达式判断,也就是这是一个较单一的正规表达式判断(简易版)。
既然是简易版的,所以若要修改这个正规表达式也是非常容易的,只要将二维数组中的数组修改即可。数组数据依据,该正规表达式所对应的的化简版DFA的状态装换矩阵。
如:S | a | b
0 | 1 | 2
1 | 1 | 2
2 | 1 | 2 所对应的即为{{1,2},{1,2},{1,2}}
效果:
代码:
1 package compile_design; 2 import java.util.Scanner; 3 4 public class regularExpression { 5 6 public static void main(String[] args){ 7 int [][] array = {{1,2},{1,2},{1,2},{3,3},{4,3}}; 8 System.out.println("正规表达式为:\n ((a|b)*|aa)*b \n"); 9 System.out.println("请输入你要验证的字符串:"); 10 11 Scanner input = new Scanner(System.in); 12 String str = input.next(); 13 int length = str.length(); 14 15 char ch; 16 int i = 0,j = 0, index = 0; 17 int t = 1; 18 int flag =0; 19 20 while(index < length){ 21 ch=str.charAt(index);//获取字符串首字母 22 if(ch == 'a') 23 j = 0; //0 ---a 24 if(ch == 'b') 25 j = 1; // 1 ---b 26 if(ch != 'a' && ch != 'b'){ 27 t = 0; 28 break; 29 } 30 index++; 31 i = array[i][j]; 32 } 33 34 flag = i ; 35 if(flag == 2 && t ==1){ 36 System.out.println("accept,字符串符合该正规表达式\n"); 37 }else{ 38 System.out.println("reject,字符串不符合\n"); 39 } 40 } 41 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决