不同小区有不同的房号格式,如纯数字:1101,带横杠:1-1101,带字母:16A,带数字0和字母:01A,带字母和横杠:F-19F,如何写SQL或算法根据这几种房号从小到大排序?
9条回答 默认 最新
- CodeBytes 2023-02-06 11:58关注
该回答引用ChatGPT
请参考下面的解决方案,如果有帮助,还请点击 “采纳” 感谢支持!在Java中,可以使用以下算法来解决上述问题:
1.对于纯数字的房号,可以直接比较大小,并将其排序。
2.对于带横杠的房号,可以先分割横杠,然后再将两个部分分别转换为数字,比较大小。
3.对于带字母的房号,可以将字母转换为相应的ASCII码,然后比较大小。
4.对于带数字0和字母的房号,可以先删除前导0,然后再将字母转换为相应的ASCII码,比较大小。
4.对于带字母和横杠的房号,可以先分割横杠,将字母转换为相应的ASCII码,比较大小。
代码示例:
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; public class RoomNumberSorter { public static void main(String[] args) { ArrayList<String> roomNumbers = new ArrayList<>(); roomNumbers.add("1101"); roomNumbers.add("1-1101"); roomNumbers.add("16A"); roomNumbers.add("01A"); roomNumbers.add("F-19F"); Collections.sort(roomNumbers, new RoomNumberComparator()); for (String roomNumber : roomNumbers) { System.out.println(roomNumber); } } } class RoomNumberComparator implements Comparator<String> { @Override public int compare(String roomNumber1, String roomNumber2) { if (roomNumber1.contains("-") && roomNumber2.contains("-")) { String[] roomNumber1Parts = roomNumber1.split("-"); String[] roomNumber2Parts = roomNumber2.split("-"); int roomNumber1Part1 = Integer.parseInt(roomNumber1Parts[0]); int roomNumber2Part1 = Integer.parseInt(roomNumber2Parts[0]); int result = Integer.compare(roomNumber1Part1,
解决 无用评论 打赏 举报
悬赏问题
- ¥15 模电中二极管,三极管和电容的应用
- ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
- ¥15 气象网格数据与卫星轨道数据如何匹配
- ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
- ¥15 微软账户问题不小心注销了好像
- ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
- ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
- ¥20 关于web前端如何播放二次加密m3u8视频的问题
- ¥15 使用百度地图api 位置函数报错?
- ¥15 metamask如何添加TRON自定义网络