正则表达式被无限循环卡住了(真)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式被无限循环卡住了(真)相关的知识,希望对你有一定的参考价值。
我刚开始java.util.regex主题。我可以执行以下代码并获得满意的结果。我在代码中使用了无限循环,试图通过给出条件来打破。然而它并没有以某种方式打破。有什么想法吗?
import java.util.Scanner;
import java.util.regex.*;
import javax.swing.JOptionPane;
public class RegEx {
public static void main(String[] args){
//using system input for Pattern and Matcher classes
Scanner regex = new Scanner(System.in);
while(true){
System.out.println("regex please: ");
Pattern p1 = Pattern.compile(regex.nextLine());
System.out.println("input please: ");
Matcher m1 = p1.matcher(regex.nextLine());
boolean b2 = m1.matches();
System.out.println("your input ""+m1.group()+"" is matching and "+b2);
if(JOptionPane.showInputDialog("does it match: ").equals("Yes")){
System.out.println("take rest now");
break;
}//note sure why this condition is not working
}
}
}
答案
尝试使用
if(JOptionPane.showInputDialog("does it match: ").trim().equalsIgnoreCase("yes"))
{
//your code
}
另一答案
只需输入没有空格的Yes
,并注意Y
在下面的弹出窗口中是大写的,然后按下OK
按钮。
执行此操作时,if
中的条件将变为true
,并且由于take rest now
语句,您的代码将在离开循环之前在控制台中输出字符串break
。
if(JOptionPane.showInputDialog("does it match: ").equals("Yes")){
System.out.println("take rest now");
break;
}
以上是关于正则表达式被无限循环卡住了(真)的主要内容,如果未能解决你的问题,请参考以下文章