使用插入功能删除数据库中的数据



我制作了一个TextView,它用多行显示值,每行包含3个字段,如下图所示:https://i.stack.imgur.com/fOZaC.png我只想在数据库中显示整数,所以我部署的想法是我们将删除字符串";和应用程序:";在每次插入时,只保留以下代码中的数字:

public void AddContact(Contact c)
{
SQLiteDatabase db=this.getWritableDatabase();
ContentValues cv=new ContentValues();
Scanner s = new Scanner(c.getNom());
while (s.hasNextLine()){
String line = s.next();
cv.put("nom ",line);
if ((line.trim().length()>0)&& (line.trim().equals("<info>")) &&(line.trim().equals("app:"))){
db.delete("contact",null,null);
db.insert("contact", null, cv);
}
}

但它不起作用。有办法做到这一点吗?

您可以使用substring()从每个line中删除前10个字符

public void AddContact(Contact c) {
SQLiteDatabase db=this.getWritableDatabase();
ContentValues cv=new ContentValues();
Scanner s = new Scanner(c.getNom());
while (s.hasNextLine()){
String line = s.next().trim();
if (line.startsWith("<info>app:")) {
line = line.substring(10).trim();
}
if (line.length() > 0) {
cv.put("nom", line);
db.insert("contact", null, cv);
}
}
}

另一种方法是删除所有非数字字符:

public void AddContact(Contact c) {
SQLiteDatabase db=this.getWritableDatabase();
ContentValues cv=new ContentValues();
Scanner s = new Scanner(c.getNom());
while (s.hasNextLine()){
String line = s.next().replaceAll("[^\d]", "");
if (line.length() > 0) {
cv.put("nom", line);
db.insert("contact", null, cv);
}
}
}

最新更新