求个方法,排列String类型的数字 我们现在在实训,做一个C/S项目,设计数据库的时候ID用的是VARCHAR类型,但是在查询的时候排序是这样排的(1,11,12,13,2,3,4……)很不爽,我初学JAVA 想请教一个解决的办法,在此谢谢啦! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果用select语句查询的话,直接order by就是了。其他算法也很多,这样的数字型的字符串,可以先转成数字再排序。 用ORDER BY 查询出来 在显示的时候还是按字符型显示,现在就是想找个方法,在显示的时候以INT类型显示 不明白楼主想要什么,你是排序问题,不会排序?还是String不会转int? 查询出来,转成int型再排序 我的目的是想让数字排序是(123456)这样排,但是现在由于数据库中的是VARCHAR类型,排序是(1 11 12 13 2 21 22 3 31 32 33),想由String转换成int 不知道怎么转换 不知道是什么数据库,比如在oracle中,而且确保是数字的情况下可以用 order by to_number(id),其他数据库也应该有类似的函数 第一种.数据库查询时直接sql+order by ID第二种.找出list,然后用排序,String转int后比较 public static void main(String[] args) { List<User> temp = new ArrayList<User>(); temp.add(new User("10", "king10")); temp.add(new User("9", "king9")); temp.add(new User("7", "king7")); temp.add(new User("8", "king8")); temp.add(new User("1", "king1")); temp.add(new User("2", "king1")); temp.add(new User("3", "king1")); temp.add(new User("4", "king1")); String tempStr = ""; for (int i = 0; i < temp.size(); i++) { for (int j = 0; j < temp.size() - i - 1; j++) { if (Integer.parseInt(temp.get(j).getId()) > Integer.parseInt(temp.get(j + 1).getId())) { tempStr = temp.get(j).getId(); temp.get(j).setId(temp.get(j + 1).getId()); temp.get(j + 1).setId(tempStr); } } } for (User u : temp) { System.out.println(u.getId()); } } 试过了 不好使~! 不知道为什么 我用sql2005 如果数据虽然是STRING类型的,但参数的内容只要是数字类型的 是可以强转的不会出错 这不是很简单的问题吗??使用INteger。ParseInt()进行转换啊,你是直接在数据库里面查询还是在java里面使用jdbc链接数据库然后查询???如果实在java程序中的话就是很简单的 如果是从数据库查出来的话,直接用order by语句就能排序,或者是放到集合里面,通过Collections类一样帮你实现排序 Java是如何传参数的?怎么交换变量? JFrame添加菜单栏用SetJMenuBar与add的区别是什么 用Java做个单线聊天室,为什么总是接收不到对方发出的消息。跪求高手指点 J2SE中用byte[]创建Image的问题 一道笔试题:inner class与聚合类的区别? 学JAVA还有前途吗?[转贴] 一个发短信的类,明天就要用,急死了,总是报错,请各位帮帮我啊!谢谢!在线等 applet中如何弹出窗口?(分只给一人) java+db2,遇到取数据的简单问题!请教 关于图标? 如何保证仅一个java应用程序实例? 简单的“云系统”应该如何构架
其他算法也很多,这样的数字型的字符串,可以先转成数字再排序。
第二种.找出list,然后用排序,String转int后比较
List<User> temp = new ArrayList<User>();
temp.add(new User("10", "king10"));
temp.add(new User("9", "king9"));
temp.add(new User("7", "king7"));
temp.add(new User("8", "king8"));
temp.add(new User("1", "king1"));
temp.add(new User("2", "king1"));
temp.add(new User("3", "king1"));
temp.add(new User("4", "king1"));
String tempStr = "";
for (int i = 0; i < temp.size(); i++) {
for (int j = 0; j < temp.size() - i - 1; j++) {
if (Integer.parseInt(temp.get(j).getId()) > Integer.parseInt(temp.get(j + 1).getId())) {
tempStr = temp.get(j).getId();
temp.get(j).setId(temp.get(j + 1).getId());
temp.get(j + 1).setId(tempStr);
}
}
}
for (User u : temp) {
System.out.println(u.getId());
}
}