2015-02-26 3 views
-3
static String[] TEST_NAMES = new String[]{"vectorTest", 
    "scalarMultiplicationTest", "columnVectorTest", "dotProductTest", 
    "matrixTest", "matrixMultiplicationTest", "selectRowTest", 
    "selectMaxTest", "indexOfMaxTest", "updateTest", "addItemTest", 
    "updateDatabaseTest"}; 

Я хочу цикл, который будет проходить через этот массив, и всякий раз, когда он указывает на индекс в массиве testNames, он должен передать его как «E» на другой массив и последний массив должен быть передан переменной «resultString», которая возвращает все «E» в базу данных. Это то, что я пробовал, но он имеет ошибки, потому что они являются несовместимыми типами.Итерация через массив и переход к другому массиву

  testNames = OOJavaBasics.TEST_NAMES; 

     ArrayList<Integer> zeroSubmission= new ArrayList<>(); 
      for (int i = 0; i < testNames.length; i++) { 
       if (thirdLastLine.contains("OK (0 tests)") && testNames.equals(i)){ 
        zeroSubmission.add('E'); 
        resultString = zeroSubmission; 
        System.out.println(resultString); 
       } 
      } 

Выход должен быть общее число которых составляет 12 длины массива в Е, как этот «EEEEEEEEEEEE»

+0

Это выглядит как домашнее задание. Ваш код также выглядит так: он содержит много частей, которые очень специфичны для рассматриваемого задания (например, что такое OO.JavaBasics? ThirdLastLine? И т. Д.). Это поможет, если вы переформатируете код, чтобы перевести его на реальную проблему, которую вы пытаетесь решить. Кроме того, похоже, что вы вызываете .equals в массиве ... это даже верно? Вы никогда не объявляете resultString, но затем назначаете ему ArrayList ... –

+0

@DanForbes OOJavaBasic - это класс java. Я избавился от третьегоLastLine, так как не важно, добавьте его позже. .equals не работает, потому что я мусор в программировании lol, поэтому его здесь для вашей помощи :)) resultString просто отправляет переменную в базу данных. – Buzz

+0

с '.equals()' мы сравниваем строки, а не массивы или int. –

ответ

1

Вы можете сделать это, используя только строку вместо того, чтобы иметь второй массив.

Попробуйте следующее:

 testNames = OOJavaBasics.TEST_NAMES; 
    String resultString=""; 
     for (int i = 0; i < testNames.length; i++) { 
      if (thirdLastLine.contains("OK (0 tests)") && testNames[i].equals("wanted result")){ // do not compare an Array with an int in the .equals() 
       resultString += "E"; 
      } 
     } 
System.out.println(resultString); 

Everytime вы нашли желаемый результат, вы сразу добавить "E" к вашим resultString.

EDIT:

Обращаясь к последнему EDIT, решение очень простое:

for (int i = 0; i < testNames.length; i++) { 
     resultString += "E"; 
} 

Просто цикл через массив и добавить E к resultString в каждой итерации.

+0

Прошу прощения за то, что не работает :( – Buzz

+0

Какая ошибка у вас? –

+0

Это разбило мое веб-приложение – Buzz

0

Это, как я решил, что

 String E = ""; 
     if (thirdLastLine.contains("OK (0 tests)")) { 

      System.out.println(thirdLastLine); 

      for (int i = 0; i < testNames.length; i++) { 

       E += 'E'; 
      } 
      resultString = E; 

      System.out.println(resultString); 
     }