Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将两个字符视为字符串中的一个字符 stringsecondline=…E…E…E.E; 字符串失败=“E”; 字符串传递=“.”; int i=0; 而((i=(secondLine.indexOf(failures,i)+1))>0){ 系统输出打印LN(i); feedbackString+=“失败:“+(i-n)+”-“+”超出“+resultString.length()+”测试。”;_Java - Fatal编程技术网

Java 将两个字符视为字符串中的一个字符 stringsecondline=…E…E…E.E; 字符串失败=“E”; 字符串传递=“.”; int i=0; 而((i=(secondLine.indexOf(failures,i)+1))>0){ 系统输出打印LN(i); feedbackString+=“失败:“+(i-n)+”-“+”超出“+resultString.length()+”测试。”;

Java 将两个字符视为字符串中的一个字符 stringsecondline=…E…E…E.E; 字符串失败=“E”; 字符串传递=“.”; int i=0; 而((i=(secondLine.indexOf(failures,i)+1))>0){ 系统输出打印LN(i); feedbackString+=“失败:“+(i-n)+”-“+”超出“+resultString.length()+”测试。”;,java,Java,测试总数为点的总和,即=12。E是故障,在这种情况下=4 点代表通过,E代表失败。无论何时运行此程序,如果出现故障,它都会在变成“.E”的点前面添加一个“E”。我可以自己得到E,但是我想要一个语句,它说给定一个点在E之前,然后它应该打印“.E”,并将它传递到一个名为failedTest的变量中 0){ 系统输出println(i-n); n++; feedbackString+=“

测试总数为点的总和,即=12。E是故障,在这种情况下=4

点代表通过,E代表失败。无论何时运行此程序,如果出现故障,它都会在变成“.E”的点前面添加一个“E”。我可以自己得到E,但是我想要一个语句,它说给定一个点在E之前,然后它应该打印“.E”,并将它传递到一个名为failedTest的变量中


<上面的代码有一个输出:4, 11, 14,16,这不是我想要的,因为它单独考虑每个字符,但是我希望它把E’看成是一个E出现在一个点之后的那个,那么它应该把它看成是一个。如果将“.E”视为失败而运行,则预期输出应为3、9、11、12。谢谢:)

您需要跟踪第二行中的额外字符数,并从匹配位置减去它们。同时将失败字符串更改为“.E”

String secondLine=“…E…E…E.E”;
字符串失败=“.E”;
字符串传递=“.”;
int n=0;
int i=0;
而((i=(secondLine.indexOf(failures,i)+1))>0){
系统输出println(i-n);
n++;
feedbackString+=“
String secondLine=“…E…E…E.E”;
字符串失败=“E”;
字符串传递=“.”;
int-detectedErrors=0;
int i=0;
而((i=(secondLine.indexOf(failures,i)+1))>0){
系统输出打印LN(i);
反馈+=“
  • 失败:” +(i-检测到的错误)//此处 +“-“+resultString.length()+”测试中的“+”项。
    ”; 检测到的错误+=1;//此处为 }
  • 如果我理解正确,您正在查找文本
    .E
    。在这种情况下,您可以使用
    secondLine.indexOf(“.E”,i)
    为什么它会将E添加到点而不是替换它?您能修改您的问题吗?您的问题很难理解。我认为secondLine.indexOf(“.E”,i)必须工作。@Narkha我按照你的建议做了,但它只适用于字符串中的第一个“.E”,并将其他字符作为单个字符处理。这是更改后我的输出:3,10,13,15@Tom因为点旁边的E表示前面的点的测试失败。目前,如果测试失败,他会打印
    .E
    。好的,在最后如果测试通过,结果是相同的
    ,如果测试不通过,结果是相同的
    .E
    。但是可能只打印
    E
    ,而不是
    .E
    。我知道,我已经告诉过他了:D。我们会看看他是否可以这样做。我尝试了你的代码,但无法让它工作,因为我在“+I-detect”附近有一个错误的操作数带负号的edErrors'sign@Buzz将
    i-detectedErrors
    更改为
    (i-detectedErrors)
    嘿,伙计,我想知道你怎么能把这段代码的输出添加为EEEE而不是3、9、11和12?我不知道你的意思。顺便说一句,我认为更简单的方法是将字符串转换为一个字符表示通过,一个字符表示失败。
    secondLine.replaceAll(\.E),“F”).replaceAll(\\.,“P”)
    将为您提供一个简单的字符串
    “ppfpppfpff”
        String secondLine = "...E......E..E.E";
        String failures = ".E";
        String passed = ".";
        int n = 0;
        int i = 0;
        while ((i = (secondLine.indexOf(failures, i) + 1)) > 0) {
            System.out.println(i-n);
            n++;
            feedbackString += "<strong style='color: red;'><li>Failed: </strong><strong>" + (i-n) + "</strong> - " + "out of " + resultString.length() + " tests.<br>";
    
    String secondLine = "...E......E..E.E";    
    String failures = "E";    
    String passed = ".";
    
    int detectedErrors = 0;
    int i = 0;
    while ((i = (secondLine.indexOf(failures, i) + 1)) > 0) {
        System.out.println(i);
        feedbackString += "<strong style='color: red;'><li>Failed: </strong><strong>" 
                        + (i - detectedErrors) // here
                        + "</strong> - " + "out of " + resultString.length() + " tests.<br>";
        detectedErrors += 1; // and here
    }