java - thenComparing 打破字符串上的子字符串
问题描述
我有一个包含两个字符的字符串列表,想按第一个字符升序和第二个字符降序排序,例如“S1”、“T1”、“T2”应该排序为“S1”、“T2”、“T1” .
看起来很简单:
strings.sort(Comparator.comparing(code -> code.substring(0,1))
.thenComparing(code -> code.substring(1,2).reversed()));
输入第一部分后
strings.sort(Comparator.comparing(code -> code.substring(0,1))
一切都还好,自动完成告诉我有关子字符串(Intellij)的信息,但是当我添加
.thenComparing(code -> code.substring(1,2).reversed()));
不知何故,Java 不再知道它正在使用字符串并给我错误
Cannot resolve method 'substring' in 'Object'
对于.substring
两者的方法调用。
使用 stream().sorted() 时也会发生同样的情况
解决方案
推荐阅读
- c - C中的x*x和(x)*(x)有什么区别?
- python - 使用 tkinter python 从列表框或按钮将值返回到列表
- visual-studio-code - 无法在 VS Code 中使用带有 Jupyter Notebook 扩展 v2021.6.999662501 的剪切、复制、粘贴功能
- outlook - 公司的 Microsoft Graph API 邮件服务
- android - 错误膨胀类 com.google.android.material.textfield.TextInputLayout 我已经尝试了所有我尝试更改依赖项但没有
- vba - Access - 从组合框中过滤连续表单文本字段
- loops - LOOP itab vs VALUE FOR 过滤,哪个更高效?
- c++ - std::deque、引用和“pop”
- angular - 具有原生 Web 组件和路由的 Angular 基础应用程序
- postgresql - 如何修剪特定文本