String secondLine = ...E......E..E.E;
String failures = "E";
String passed = ".";
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 + "</strong> - " + "out of " + resultString.length() + " tests.<br>";
}
Общее количество испытаний является суммой точек, который является = 12. и Е являются сбои, которые в этом случае = 4.Учитывая два символа как один в строке
Точки являются проходами, а E - провалами. Всякий раз, когда это выполняется и происходит сбой, он добавляет «E» перед точкой, которая становится «.E». Я могу получить E по своему усмотрению, но я хочу, чтобы заявление, в котором говорилось, что точка находится перед E, а затем должна печатать «.E» и передавать ее в переменную с именем failedTest.
Вышеприведенный код имеет результат: 4, 11, 14, 16, который не является тем, что я хочу, поскольку он рассматривает каждый символ отдельно, но я хочу, чтобы он рассматривал «.E» как тот, который есть, если E приходит после точка, то она должна рассматривать его как единое целое. если это должно быть выполнено с учетом «.E» как сбоя, ожидаемый результат должен быть 3, 9, 11, 12. Спасибо :)
если я понял правильно, вы ищете текст '.E'. В этом случае вы можете использовать 'secondLine.indexOf (". E ", i)' – Narkha
Почему это * добавляет * E к точке, вместо * заменяет * это? – Tom
Не можете изменить ваш вопрос? Трудно понять ваш вопрос. Я думаю, что secondLine.indexOf (". E", i) должен работать. –