2016-09-06 196 views
2

我有一個Android應用程序。當我創建一個新表時,如果我添加一個特殊字符如!$,應用程序會崩潰。我創建了功能與_像這樣以替換空間:在表名中插入特殊字符

String name = name.getText().toString().replace(" ", "_"); 

// execute my insert query here 

我怎麼可以這樣做比其他空間的任何其他特殊字符,當我創建一個新表?這是可能的,如果是這樣,如何?

+1

如果數據庫表名是基於用戶輸入的話,就像你的氣味有數據庫設計問題。 – laalto

+0

用戶創建一個新的數據列表,併爲該列表生成一個表格,這就是爲什麼需要用戶輸入。 –

回答

3

使用:

String name = "Table$Name"; 
name = name.replaceAll("\\W", "_"); 
+0

此代碼替換哪個字符? –

+0

所有特殊字符。 – Amy

+0

謝謝非常艾米!這工作得很好!我會接受這個答案! –

3

可以使用Android中一個內置功能逃避字符串的特殊字符。像下面一樣,

String name = DatabaseUtils.sqlEscapeString(name.getText().toString()) 
+0

Thankyou Santhosh!我認爲你的回答更好,因爲它在我的'RecyclerView'中顯示字符,而不是完全替換它們。 –

+0

@SvenRonnlund多數民衆贊成在更好,但你的問題是錯誤的,你要求替換字符。我認爲它的業務需要。 :) – Amy

+0

@Amy你是在現場:)我感到相反,並認爲他需要知道兩個選項來決定 – Santhosh