Android 在表名中插入特殊字符
我有一个Android应用程序。当我创建一个新表时,如果我添加一个特殊字符,如Android 在表名中插入特殊字符,android,android-sqlite,Android,Android Sqlite,我有一个Android应用程序。当我创建一个新表时,如果我添加一个特殊字符,如或$,应用程序崩溃。我创建了一个功能,用替换空格,如下所示: String name = name.getText().toString().replace(" ", "_"); // execute my insert query here 创建新表时,如何对除空格以外的任何其他特殊字符执行相同操作?这可能吗?如果可能,如何实现?使用以下方法: String name = "Table$Name"; name =
或$
,应用程序崩溃。我创建了一个功能,用替换空格,如下所示:
String name = name.getText().toString().replace(" ", "_");
// execute my insert query here
创建新表时,如何对除空格以外的任何其他特殊字符执行相同操作?这可能吗?如果可能,如何实现?使用以下方法:
String name = "Table$Name";
name = name.replaceAll("\\W", "_");
您可以使用Android中的内置函数对字符串中的特殊字符进行转义。如下图所示
String name = DatabaseUtils.sqlEscapeString(name.getText().toString())
所有特别的角色。非常感谢艾米!这个很好用!我会接受这个答案!快乐编码:)如果数据库表名基于用户输入,则闻起来您有数据库设计问题。用户创建一个新的数据列表,并为该列表生成一个表,这就是为什么需要用户输入的原因。谢谢Santhosh!我认为您的答案效果更好,因为它在myRecyclerView
中显示字符,而不是完全替换它们。@SvenRonnlund这更好,但您的问题是错误的,您要求替换字符。我认为它的业务需要。:)@艾米:你说得对:)我感觉正好相反,我认为他需要知道决定的两种选择。没关系。桑托什问问题时要小心。就我个人而言,我认为这应该是公认的答案。