openlang

String.Format을 호출할 때 퍼센트 문자는 어떻게 이스케이프하나요?

strings.xml 파일에 SQL 쿼리를 저장해 두고, 코드에서 String.Format으로 최종 문자열을 만들려고 해요. SELECT 쿼리에는 이런 like 절이 들어 있어요:

SELECT ColumnA, ColumnB FROM records WHERE ColumnA LIKE '%pattern%'

서식을 적용하려고 'pattern'을 %1$s로 바꾸니 이렇게 됩니다:

SELECT ColumnA, ColumnB FROM records WHERE ColumnA LIKE \'%%1$s%\'

작은따옴표는 백슬래시로 이스케이프할 수 있어요. 그런데 % 문자는 아직 이스케이프하지 못했어요.

strings.xml에 like 절을 넣으려면 어떻게 하나요?

영어에서 번역원문 보기

이어지는 대화 3

서로의 근거를 따라
  1. 고유 링크

    이 정규식 치환은 입력에서 이미 두 번 써진 %% 시퀀스를 그대로 두므로 더 견고합니다.

    query = query.replaceAll("(?:[^%]|\\A)%(?:[^%]|\\z)", "%%");
    영어에서 번역원문 보기

같은 질문의 다른 갈래

  1. 도수 기호(°)가 있는 메시지에서만 NAK가 와요 (serial, Emacs)

    기본적으로 Temp: 23C는 ACK를 받는데 Temp: 23°C는 NAK를 받고, 보드에는 아무것도 안 떠요. 로그 줄은 rx: "\25"예요. baud를 4800으로 낮추고, :flowcontrol hw로 바꾸고, 다시…

    답글 1최근 활동 emacs-lisp
  2. F#에서 문자열 서식 지정하기

    처음으로 F# 라이브러리를 만들고 있어요 string.Format를 사용하면 그런 함수가 없다는 오류가 나와요. 제가 잘못한 걸까요, 아니면 원래 없는 기능인가요?

    답글 2최근 활동 fsharp
  3. C++처럼 바이트 단위로 자르다가 만난 Rust panic

    오래된 C++ 코드를 Rust로 옮기고 있는데, std::string을 바이트 한도에 맞춰 s.substr(0, n)으로 자르는 부분이 있어요. 한 줄이면 될 줄 알았죠. C++에서는 그럭저럭 돌아갔어요. std::strin…

    답글 4최근 활동 rustcpp