Saya menyimpan query SQL dalam file strings.xml saya dan saya ingin menggunakan String.Format
untuk membangun string terakhir dalam kode. The SELECT
pernyataan menggunakan seperti, sesuatu seperti ini:
SELECT Field1, Field2 FROM mytable WHERE Field1 LIKE '%something%'
Untuk memformat yang saya ganti 'sesuatu' dengan% 1 $ s sehingga menjadi:
SELECT Field1, Field2 FROM mytable WHERE Field1 LIKE \'%%1$s%\'
Saya lolos dari tanda kutip tunggal dengan garis miring terbalik. Namun saya tidak dapat lepas dari tanda%.
Bagaimana saya bisa memasukkan pernyataan suka dalam file strings.xml saya?
String.format()
yang mungkin Anda pertimbangkan untuk menggunakannyaMessageFormat()
.Jawaban:
Untuk melarikan diri
%
, Anda akan perlu dua itu:%%
.sumber
Untuk melengkapi solusi yang dinyatakan sebelumnya, gunakan:
sumber
Ini adalah pengganti regex yang lebih kuat yang tidak akan menggantikan %% yang sudah dua kali lipat dalam input.
sumber
Berikut adalah opsi jika Anda perlu melarikan diri beberapa% dalam sebuah string dengan beberapa sudah lolos.
Untuk membersihkan pesan sebelum meneruskannya ke String.format, Anda dapat menggunakan yang berikut ini
Ini berfungsi dengan sejumlah karakter pemformatan, sehingga akan menggantikan% dengan %%, %%% dengan %%%%, %%%%% dengan %%%%%%, dll.
Ini akan membiarkan karakter yang sudah lolos saja (mis. %%, %%%%, dll.)
sumber