好的,所以我一直在寻找答案,但无法找到任何答案:
我正在手机上创建一个文件,想写下以下内容:
如果具有此模式的行" 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+),(\\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();
}
}
}
感谢您的回复
答案 0 :(得分:0)
p.matcher()需要是您要匹配的String,而不是正则表达式。
尝试将正则表达式移动到Pattern:
Pattern p = Pattern.compile(""+myNumber+":(\\d+),(\\d+)");
Matcher m = p.matcher(inputString);
编辑:inputString应该在&#34; N:xval,yval&#34;格式