我想檢查并驗證 ArrayList 中的所有內容是否與 String 變量的值相似。如果任何值不相似,則打印索引號并顯示錯誤消息(索引 2 處的值與 expectedName 變量的值不匹配)。在我運行下面的代碼后,它會打印所有三個索引和錯誤消息,它不會只打印索引號 1。請注意,這里我從 CSV 文件中獲取數據,將其放入數組列表中,然后進行驗證它針對 String 變量中的預期數據。import org.apache.commons.csv.CSVFormat;import org.apache.commons.csv.CSVParser;import org.apache.commons.csv.CSVRecord;import java.io.IOException;import java.io.Reader;import java.nio.file.Files;import java.nio.file.Paths;import java.util.ArrayList;public class ValidateVideoDuration {private static final String CSV_FILE_PATH = "C:\\Users\\videologs.csv";public static void main(String[] args) throws IOException { String expectedVideo1Duration = "00:00:30"; String expectedVideo2Duration = "00:00:10"; String expectedVideo3Duration = "00:00:16"; String actualVideo1Duration = ""; String actualVideo2Duration = ""; String actualVideo3Duration = ""; ArrayList<String> actualVideo1DurationList = new ArrayList<String>(); ArrayList<String> actualVideo2DurationList = new ArrayList<String>(); ArrayList<String> actualVideo3DurationList = new ArrayList<String>(); try (Reader reader = Files.newBufferedReader(Paths.get(CSV_FILE_PATH)); CSVParser csvParser = new CSVParser(reader, CSVFormat.DEFAULT.withFirstRecordAsHeader().withIgnoreHeaderCase().withTrim());) { for (CSVRecord csvRecord : csvParser) { // Accessing values by Header names actualVideo1Duration = csvRecord.get("Video 1 Duration"); actualVideo1DurationList.add(actualVideo1Duration); actualVideo2Duration = csvRecord.get("Video 2 Duration"); actualVideo2DurationList.add(actualVideo2Duration); actualVideo3Duration = csvRecord.get("Video 3 Duration"); actualVideo3DurationList.add(actualVideo3Duration); } }
1 回答

紫衣仙女
TA貢獻1839條經驗 獲得超15個贊
不要使用==
或!=
進行字符串比較。==
檢查兩個字符串的引用相等性而不是值的相等性。請改用該.equals()
方法。
將您的 if 條件更改為if (!actualVideo2DurationList.get(i).equals(expectedVideo2Duration))
添加回答
舉報
0/150
提交
取消