Java 如何找到与模式的动态匹配
好的,我一直在寻找答案,但找不到任何答案: 我正在手机上创建一个文件,并希望编写以下内容: 如果有一条具有此模式N:xval,yval的线存在于数字N中,而且没有设置xval和yval,那么我想用N:xval+1,yval+{0或1}替换该线 如果没有这样的行,我想用N:1、{0或1}创建一个新行 问题是:它找不到匹配项 我在这个州:Java 如何找到与模式的动态匹配,java,android,pattern-matching,Java,Android,Pattern Matching,好的,我一直在寻找答案,但找不到任何答案: 我正在手机上创建一个文件,并希望编写以下内容: 如果有一条具有此模式N:xval,yval的线存在于数字N中,而且没有设置xval和yval,那么我想用N:xval+1,yval+{0或1}替换该线 如果没有这样的行,我想用N:1、{0或1}创建一个新行 问题是:它找不到匹配项 我在这个州: for (int N=0; N<myNumber; N++){ Pattern p = Pattern.compile("(\\d+):(\\d+)
for (int N=0; N<myNumber; N++){
Pattern p = Pattern.compile("(\\d+):(\\d+),(\\d+)");
Matcher m = p.matcher(""+myNumber+":(\\d+),(\\d+)");
m.find();
int xval, yval, val;
if (m.matches()) {
val =Integer.parseInt(m.group(1));
xval = Integer.parseInt(m.group(2));
yval = Integer.parseInt(m.group(3));
++xval;
if (myBoolean==true){
++yval;
}
line = String.format("%d:%d,%d", val ,xval, yval);
try {
globalwriter.write(line.getBytes(), m.start(), line.length());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
int zeroorone;
if (myBool==true){
zeroorone=1;
}else{
zeroorone=0;
}
line = String.format("%d:%d,%d \n ", myNumber ,1, zeroorone);
try {
int end;
if (checker.length() == 0){
end = 0;
}else{
end = (int)checker.length() -1;
}
globalwriter.write(line.getBytes(),(int) end,line.length());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
感谢回复。matcher需要是您试图匹配的字符串,而不是正则表达式 尝试将正则表达式移动到模式:
Pattern p = Pattern.compile(""+myNumber+":(\\d+),(\\d+)");
Matcher m = p.matcher(inputString);
edit:inputString应为N:xval,yval格式,但当我不知道xval和yval是什么时,如何填充inputString。同样,对于//d+?@jacobusConradi,您说过要检查一行模式,该行应该是inputString。