编程题,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-1
3) 编写程序,先按照前半部分的数字进行排序,再按照后半部分的数字进行排序,最终输出要为:

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