问题标签 [natural-sort]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java中的自然排序顺序字符串比较 - 是内置的吗?
我想要某种保留自然排序顺序的字符串比较函数1。Java中是否有类似的东西?我在String 类中找不到任何东西,而Comparator 类只知道两个实现。
我可以自己动手(这不是一个很难的问题),但如果我不需要,我宁愿不重新发明轮子。
在我的具体情况下,我有要排序的软件版本字符串。所以我希望“1.2.10.5”被认为大于“1.2.9.1”。
1 “自然”排序顺序是指它以人类比较字符串的方式比较字符串,而不是仅对程序员有意义的“ascii-betical”排序顺序。换言之,“image9.jpg”小于“image10.jpg”,“album1set2page9photo1.jpg”小于“album1set2page10photo5.jpg”,“1.2.9.1”小于“1.2.10.5”
c# - LINQ 和自然排序
获取 LINQ 查询(从 SQL 数据库 - 这有关系吗?)以自然地对字符串进行排序的最简单方法是什么?
例如,我目前得到这些结果:
- 项目一
- 项目 10
- 项目 2
我想看到的是:
- 项目一
- 项目 2
- 项目 10
我正在使用的查询是这样的:
c# - C#:在 shlwapi.dll 中实现或替代 StrCmpLogicalW
为了在我的应用程序中进行自然排序,我目前在 shlwapi.dll 中 P/Invoke 一个名为 StrCmpLogicalW 的函数。我正在考虑尝试在 Mono 下运行我的应用程序,但是当然我不能拥有这个 P/Invoke 的东西(据我所知)。
是否有可能在某处看到该方法的实现,或者是否有一个好的、干净和高效的 C# 片段可以做同样的事情?
我的代码目前如下所示:
所以,我正在寻找的是不使用外部函数的上述类的替代方案。
emacs - Emacs Lisp 的自然顺序排序
有人在 Emacs Lisp 中实现了自然顺序排序吗?我知道写作并不难,但借用别人的作品更容易。
(是的,我不敢相信我刚刚搜索了一个 Emacs 函数却找不到它。)
linq - 具有隐式排序顺序的 IList
我想创建一个始终以默认/隐式排序顺序IList<Child>
维护其Child
对象(即,无论对基础列表的添加/删除)。
我特别想避免的是,所有的消费者都需要在每次想要枚举它时IList<Child>
显式调用。IEnumerable<T>.OrderBy()
除了违反 DRY 之外,这种方法还会破坏封装,因为消费者必须知道我的列表甚至是排序的,这真的不关他们的事:)
似乎最合乎逻辑/最有效的解决方案是公开IList<Child>
为IEnumerable<Child>
(以防止 List 突变)并将显式 Add/Remove 方法添加到包含Parent
. 这样,我可以拦截需要重新排序的列表更改,并通过 Linq 应用:
尽管如此,这种方法不会拦截对底层所做的更改Child.StringProperty
(在这种情况下,底层是驱动排序的属性)。对于这样一个基本问题,肯定有更优雅的解决方案,但我一直找不到。
编辑: 我不清楚我是否更喜欢 LINQ 兼容的解决方案。我宁愿不使用 .NET 2.0 构造(即 SortedList)
php - mysql选择行的php自然顺序排序
我正在运行一个返回字母数字结果的选择,例如:
我试过使用:
和
这有助于下订单,但我似乎无法在 -10 之前订购 -2
非常感谢
javascript - Javascript:自然排序的字母数字字符串
我正在寻找对包含数字和文本以及它们的组合的数组进行排序的最简单方法。
例如
变成
这将与我在这里提出的另一个问题的解决方案结合使用。
排序函数本身有效,我需要的是一个可以说“19asd”小于“123asd”的函数。
我正在用 JavaScript 写这个。
编辑:正如adormitu指出的那样,我正在寻找的是自然排序的功能
sql-server - SQL Server 的自然排序?
我有一列通常只有数字(有时是字母,但这并不重要)。
我怎样才能让它自然排序?
目前排序如下:{1,10,11,12,2,3,4,5,6,7,8,9}
我希望它像这样排序:{1,2,3,4,5,6,7,8,9,10,11,12}