我有一个简单的问题...我写这段代码来删除以字符串开头的记录但是当试图应用这段代码来删除另一条以整数开头的记录时,它给了我一个错误
这是我的代码:
public void deleteSupplier(String company) throws FileNotFoundException, IOException
{
File inputFile = new File("C:\\Users\\فاطمة\\Downloads\\suppliers.txt"); // Your file
File tempFile = new File("C:\\Users\\فاطمة\\Downloads\\suppliers2.txt"); // temp file
BufferedReader reader = new BufferedReader(new FileReader(inputFile));
BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));
String currentLine;
while((currentLine = reader.readLine()) != null)
{
if(currentLine.contains(company))
continue;
writer.write(currentLine);
writer.newLine();
}
writer.close();
reader.close();
File inputFile1 = new File("C:\\Users\\فاطمة\\Downloads\\suppliers.txt"); // Your file
File tempFile1 = new File("C:\\Users\\فاطمة\\Downloads\\suppliers2.txt"); // temp file
inputFile1.delete();
boolean successful = tempFile1.renameTo(inputFile1);
if(successful == true)
System.out.println("Supplier deleted successfully");
else if(successful == false)
System.out.println("Error: deleting failed, supplier might not be found.");
}
例如,我有一个这样的记录:
Hamada Port 111
Hobeee Jack 447
代码适用于此,但在尝试为此类记录应用代码时
1 Hamada 147
7 Hobeee 444
它给了我错误。
注意:我用过:
int id
而不是
String company
并在函数中使用id而不是company:
currentLine.contains(id);
但它会出错。
请帮忙吗?
答案 0 :(得分:0)
因为您正在致电'包含'在String类的方法中,您只能将CharSequence子类的实例作为参数(例如String)给出(就像您对字符串的情况所做的那样)。由于Integer不是CharSequence接口的子类,因此在应用于' contains'之前必须进行转换。方法。将int值转换为String将是最佳选择。
{{1}}