代码采用值选项选择2个将要通过生成这些兼容的字符串到正则表达式来填充,有2个正则表达式。尝试在JAVA中生成与顺序中的正则表达式匹配的字符串(从0到N大小的字符串和从1到255个ASCII字符)
那些正则表达式将在稍后进行比较。 “ascii”变量是一个包含ASCCI代码中每个单个字符的字符串。
现在代码似乎并没有结束,当我开始时,我真的不知道我的错误究竟在哪里。
static public void ASCIIString(int option){
String res="";
int n=0;
cicleG: while(true){
n++;
int x=n-1;
int []aux = new int [n];
for(int i=0;i<n;i++){
aux[i]=0;
}
cicle: while(aux[0]<ascii.length()){
for(int i=0;i<n;i++){
res+=(ascii.charAt(aux[i])+"");
}
aux[x]++;
while(aux[x]==ascii.length() && x>0){
aux[x]=0;
aux[--x]++;
}
x=n-1;
for (int i = 0; i < Lista1.size(); i++) {
if(option==1)
if(res.equals(Lista1.get(i))){
continue cicle;
}
else
if(res.equals(Lista2.get(i))){
continue cicle;
}
}
if(option==1)
if(res.matches(expression1)){
Lista1.add(res);
break cicleG;
}
else
if(res.matches(expression2)){
Lista2.add(res);
break cicleG;
}
}
}
}
而对于inicialization的代码是这一个:
static ArrayList<String> Lista1,Lista2;
static String ascii="";
static String expression1="",expression2="";
for (int i = 1; i <= 255; i++) {
ascii+=(char)i;
}
Lista1= new ArrayList();
Lista2= new ArrayList();
expression1=lenguaje1.getText();
expression2=lenguaje2.getText();
那么到目前为止您采取了哪些诊断步骤?你有没有在调试器中检查你的代码?顺便说一下,我强烈建议将此分解为单独的方法,而不是使用带标签的继续语句。例如,你没有给我们一个[mcve] - 你永远不会声明'ascii'。 –
像Cicle一直往前走(我正在发送一个字符串在控制台中显示)。但我试图清理它,如果它无法正常工作,我会重新发布它。 –
这并没有回答你是否试图在调试器中逐步执行代码... –