openlang

调用 String.Format 时怎样转义百分号?

我的 strings.xml 文件保存了一个 SQL 查询,我想在代码中用 String.Format 构造最终字符串。SELECT 查询中有一个类似下面这样的 like 子句。

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

为了格式化,我用 %1$s 替换 'pattern',得到下面这样。

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

反斜杠可以转义单引号。但是 % 字符我还没能成功转义。

怎样把 like 子句放进 strings.xml 文件?

从英语翻译查看原文

后续讨论 3

顺着彼此的依据读下去
  1. 固定链接

    这个正则表达式替换更加稳健,因为它会保留输入中已经成对出现的 %% 序列。

    query = query.replaceAll("(?:[^%]|\\A)%(?:[^%]|\\z)", "%%");
    从英语翻译查看原文

同一个问题的其他角度

  1. 仅当消息里有度数符号时才会 NAK(串口,Emacs)

    简单说,Temp: 23C 会收到 ACK,但 Temp: 23°C 会收到 NAK,板子上什么都不显示。日志行是 rx: "\25"。把波特率降到 4800、:flowcontrol 设成 hw、重新插拔,都没有任何变化。我看 tx: 那行是正常的…

    回复 1最近活动 emacs-lisp
  2. 在 F# 中格式化字符串

    我正在第一次编写 F# 库 使用 string.Format 时,提示说这个函数不存在。 是我哪里弄错了,还是本来就不能用?

    回复 2最近活动 fsharp
  3. 像老 C++ 那样按字节截断,Rust 直接 panic

    在把一段老 C++ 移植到 Rust,它把 std::string 用一句普通的 s.substr(0, n) 截到字节上限,我本来以为一行就搞定了。在 C++ 里它大致能用,尽管 std::string 对 UTF-8 一无所知,会毫不犹豫地把一个…

    回复 4最近活动 rustcpp