编程题,1)有以下一组字符串 2)13-1、13-108、13-18、100-11、10-15、14-2、14-1 3)编写程序,先按照前半部分的数字进行排序,再按照后半 部分的数字进行排序
来源:互联网 发布:淘宝好评返现哪个类目 编辑:程序博客网 时间:2024/06/06 20:06
java编程题:
1) 有以下一组字符串
2) 13-1、13-108、13-18、100-11、10-15、14-2、14-13) 编写程序,先按照前半部分的数字进行排序,再按照后半部分的数字进行排序,最终输出要为:
4) 10-15、13-1、13-18、13-108、14-1、14-2、100-11
第一种方法:
package hp.wk.demo08;import java.util.ArrayList;import java.util.Collections;import java.util.Iterator;import java.util.TreeSet;public class Word01 {/* * 1、Java编程题 * 1) 有以下一组字符串 * 2) 13-1、13-108、13-18、100-11、10-15、14-2、14-1 * 3)编写程序,先按照前半部分的数字进行排序,再按照后半部分的数字进行排序,最终输出要为: * 4)10-15、13-1、13-18、13-108、14-1、14-2、100-11 */public static void main(String[] args) {String[] strs={"13-1","13-108","13-18","100-11","10-15","14-2","14-1"};//先取出“-”的前半部分并且放到TreeSet里边TreeSet<Integer> treeSet=new TreeSet<>();for(int i=0;i<strs.length;i++){treeSet.add(Integer.parseInt(strs[i].substring(0,strs[i].indexOf("-"))));}//System.out.println(treeSet);//按照第一部分的开头将strs中的字符串排序存放到treeSet里Iterator<Integer> it=treeSet.iterator();while(it.hasNext()){Integer perInt=it.next();//把treeSet排序好的首部数字放到perInt里边ArrayList<Integer> alist=new ArrayList<>();for(String s:strs){if(s.startsWith(perInt+"")){//判断是否是以前半部分开始的字符串,要加 "" ,不然返回的不是字符串 alist.add(Integer.parseInt(s.substring(s.indexOf("-")+1))); //将后半部分字符串放到alist中}}Collections.sort(alist);for(int i:alist){System.out.println(perInt+"-"+i);}}}}
第二种方法:
public void test2() {String[] strs = { "13-1", "13-108", "13-18", "100-11", "10-15", "14-2","14-1", "111-10", "10-18" };TreeSet<String> set = new TreeSet<>(new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {String prefix1=o1.substring(0,o1.indexOf("-"));String prefix2=o2.substring(0,o2.indexOf("-"));String lastFix1=o1.substring(o1.indexOf("-")+1);String lastFix2=o2.substring(o2.indexOf("-")+1);if(Integer.parseInt(prefix1)>Integer.parseInt(prefix2)){return 1;}else if(Integer.parseInt(prefix1)<Integer.parseInt(prefix2)){return -1;}else{return Integer.compare(Integer.parseInt(lastFix1), Integer.parseInt(lastFix2));}}});for(String s:strs){set.add(s);}System.out.println(set);}
阅读全文
0 0
- 编程题,1)有以下一组字符串 2)13-1、13-108、13-18、100-11、10-15、14-2、14-1 3)编写程序,先按照前半部分的数字进行排序,再按照后半 部分的数字进行排序
- mysql将数字组成的字符串字段按照字符串数值型的大小进行排序
- mysql将数字组成的字符串字段按照字符串数值型的大小进行排序
- 按照字符串的长短进行排序
- DataTable字符串类型的数字,按照数字类型排序
- Mysql数字字符串按照数字排序
- mysql 字符串里面的数字,按照大小排序
- 产生10个1-100的随机整数, * 把其中的奇数按照从小到大的顺序进行排序, * 并按照“1,2,3,、、、”这样的格式打印到d盘下的number.txt文档中。
- 用C语言按照冒泡法进行数字排序
- Mysql的varchar排序按照数字顺序
- 按照文件名的数字大小排序文件
- Mysql的varchar排序按照数字顺序
- Mysql的varchar排序按照数字顺序
- perl按照字符串长度进行排序,sort函数的示例
- 对字符串按照从小到大的顺序进行排序
- JS把字符串按照特定的字母顺序进行排序
- js,将一个整数数组先按照因子数量排序,再按照数字大小排序
- js,将一个整数数组先按照因子数量排序,再按照数字大小排序 Version2
- 用git cmd pull 或push 时提示密码错误的解决方法
- Overload 和 Override 的区别 。Overloaded 的方法 是否可以改变返回值的类型?
- AI的伦理问题
- Windows Error Code(windows错误代码详解)
- 程序猿怎样选择机械键盘
- 编程题,1)有以下一组字符串 2)13-1、13-108、13-18、100-11、10-15、14-2、14-1 3)编写程序,先按照前半部分的数字进行排序,再按照后半 部分的数字进行排序
- Hdoj 1036 Average is not fast enough!(被一个冒号,wa7次的恐惧)
- Easyui实例--tabs
- 常用排序算法——学习
- Adobe全系列软件通用破解注册机 AMTEmu 0.9.2 painter
- Nginx简单使用
- 忘记密码 验证码60秒
- Javascript学习笔记(属性描述对象)
- 智能诊断-人工智能在云平台上的新玩法