我正在开发一个 iOS 应用程序,该应用程序使用 FMDB 存储必须按字母数字排序的书名列表(字母第一,数字第二)。但是,我还必须忽略非字母数字前导字符,例如星号或括号。我也必须忽略“The”。此外,这些排序数据将显示在索引 UITableView 上,因此我需要能够获取前导字符列表以及进入每个部分的书名数量。
例子-
这是书名列表:
"A Title 1", "A Title 2", "The A Title 3", "B Title 1", "B Title 2", "B Title 3",
"*B Title 4", "C Title 1", "(The) C Title 2", "3 Title 1"
从这个列表中,我将计算 4 个部分以将标题放入('A'、'B'、'C'、'3')。我还会计算进入每个部分的书的数量('A'-3 书,'B'-4 书,'C'-2 书,'3'-1 书)。使用本教程,我能够设置部分和索引,但在处理“The A Title 3”、“*B Title 4”和“(The) C Title 2”等标题时遇到了麻烦。
目前,这是我正在使用的声明:
SELECT DISTINCT UPPER(SUBSTR(BookTitle, 1, 1)) AS Section,
COUNT(BookTitle) AS SectionCount
FROM BookTable
GROUP BY Section ORDER BY IFNULL(Section + 1, 0), Section
这将返回按字母数字排序的章节列表以及进入每个章节的书籍数量。问题是我的“T”部分有太多书籍,因为它正在获取所有以“The”为主角的书籍。更不用说当我想忽略这些特殊字符时,我会得到像 < 或 * 这样的特殊字符部分。我在想我需要剪掉任何非字母数字字符和任何出现的“The”,但我不知道如何将它整合到我的查询中,就像现在这样。
我希望这足够详细。请随时要求我澄清任何事情。与往常一样,提前致谢。