2016-09-06 4 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

@ Ами вы на месте :) Я почувствовал обратное и подумал, что ему нужно знать оба варианта, чтобы принять решение – Santhosh

Смежные вопросы