java .contains()测试字符串是否包含+符号

时间:2013-12-17 22:49:38

标签: java

我有以下代码:

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'?

1 个答案:

答案 0 :(得分:0)

您的代码仅检查当前正在扫描的行中的+。所有As的行没有+所以As被替换了......