Если слово КОМПЬЮТЕР является словом ассоциации, а строка, которую вы хотите удалить , начинается с слова КОМПЬЮТЕР , то String # равно () Метод не тот, который следует использовать в вашем выражении IF .Вам может понадобиться метод String # startWith () , например:
boolean ignoreLetterCase = true; // ignore Letter Case by default
String lineToRemove = "computer";
String criteria = ignoreLetterCase ? lineToRemove.toLowerCase() : lineToRemove;
while ((line = r1.readLine()) != null) {
String procString = ignoreLetterCase ? line.toLowerCase : line;
if (!procString.startsWith(criteria)) {
w1.write(line);
w1.newLine();
}
}
Строка данных файла COMPUTER,pc,08/07/2018,brandon
не будет записана в файл назначения.
Если, однако, вы хотите игнорировать строку файла, в которой содержит ассоциативное слово COMPUTER где угодно в строке извлеченных данных, тогда вызахочет использовать метод String # contains () , например:
boolean ignoreLetterCase = true; // ignore Letter Case by default
String lineToRemove = "computer";
String criteria = ignoreLetterCase ? lineToRemove.toLowerCase() : lineToRemove;
while ((line = r1.readLine()) != null) {
String procString = ignoreLetterCase ? line.toLowerCase : line;
if (!procString.contains(criteria)) {
w1.write(line);
w1.newLine();
}
}
Строка данных файла COMPUTER,pc,08/07/2018,brandon
будет не записана в место назначенияфайл.Однако строка данных файла, которая содержит PRINTER,pc-computer,09/27/2018,joseph
, будет также не записываться в файл назначения, поскольку слово computer содержится в исходной строке файла.
IСильно сомневаюсь, что это когда-либо будет иметь место с вашим файлом данных, но если строка данных восстановленного файла only содержит ассоциативное слово (COMPUTER), то во всех случаях вы захотите использовать String # equals () или String # equalsIgnoreCase () метод.
Если вы хотите игнорировать строки исходного файла, где ассоциативное слово относится только к определенному столбцу данных любой строки данных извлеченного файлатогда вы захотите проанализировать (разбить) каждую строку в массиве столбчатых данных и выполнить сравнение по нужному столбцу (элементный индекс массива).Например:
// Delete all file lines where the NAME column equals
// the name 'brandon' or 'Brandon' or 'BRANDON'.
boolean ignoreLetterCase = true; // ignore Letter Case by default
int deleteIfInColumn = 3;
String nameToDelete = "Brandon";
String criteria = ignoreLetterCase ? nameToDelete .toLowerCase() : nameToDelete;
while ((line = r1.readLine()) != null) {
String procString = ignoreLetterCase ? line.toLowerCase : line;
String[] columnData = procString.split(",");
if (columnData[deleteIfInColumn].equals(criteria)) {
continue; // Skip to next file line
}
w1.write(line);
w1.newLine();
}