我有以下代码:
Scanner input3 = new Scanner(new File("internal"));
Scanner input4 = new Scanner(new File("internal"));
for (int i = 0; i < narray[ctr]; i++) {
for (int j = 0; j < marray[ctr]; j++) {
try{
String test4 = input4.nextLine();
System.out.println("test4:" + test4);
if(test4.contains("+")){
a[i][j] = input3.useDelimiter(" ").next()
.replaceAll(",", " ")
.replace("+", "")
.replace("~", "")
.replace("^", "")
.replace("v", "")
.replace(">", "")
.replace(".", "")
.replace("A", "");
System.out.println("hello1");
}
else {
a[i][j] = input3.useDelimiter(" ").next()
.replaceAll(",", " ")
.replace("+", "")
.replace("~", "")
.replace("^", "")
.replace("v", "")
.replace(">", "")
.replace(".", "");
System.out.println("hello2");
}
p3.println(a[i][j]);
}
catch (java.util.NoSuchElementException e) {
// e.printStackTrace();
}
}
}
以下输入文件'internal':
A A + +
A,x,x,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A|
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , |
该程序为我提供了输出:
VVVVV
x x
V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V
而不是:
VVVVV
A x x A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V
为什么程序不仅替换包含'+'的第一行的'A'?如何更改它以便在没有'+'的情况下不替换第二行的'A'?
答案 0 :(得分:0)
您的代码仅检查当前正在扫描的行中的+。所有As的行没有+所以As被替换了......