Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在表名中插入特殊字符_Android_Android Sqlite - Fatal编程技术网

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 =

我有一个Android应用程序。当我创建一个新表时,如果我添加一个特殊字符,如
$
,应用程序崩溃。我创建了一个功能,用
替换空格,如下所示:

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!我认为您的答案效果更好,因为它在my
RecyclerView
中显示字符,而不是完全替换它们。@SvenRonnlund这更好,但您的问题是错误的,您要求替换字符。我认为它的业务需要。:)@艾米:你说得对:)我感觉正好相反,我认为他需要知道决定的两种选择。没关系。桑托什问问题时要小心。就我个人而言,我认为这应该是公认的答案。