java字符串排序

问题描述

如下:有以下数据:【0.7m,0,10mm~2.5,0.7,20,15mm~2,7,10,7m】请将数据去掉单位后,得到一下结果:【0,0.7,5,7,10,20】注意:10mm~2.5和15mm~2,7因为他们都有“~”号,所以没在结果中出现,而且按从小到大排了序各位有什么简单的方法得出结果吗(代码越少越好,惭愧我的代码太长,感觉不靠谱,特来取经),直接贴代码,谢谢~

解决方案

解决方案二:
【0.7m,0,10mm~2.5,0.7,20,15mm~2,7,10,7m】你这个将逗号分割后放到数组里面,然后用Arrays.sort(你的数组)。
解决方案三:
Double[]process(String[]strs){Set<Double>valSet=newTreeSet<Double>();for(inti=0;i!=strs.length;++i){Stringtemp=strs[i].replaceAll("m*","");try{doubleval=Double.parseDouble(temp);valSet.add(val);}catch(Exceptione){//TODO:handleexception}}Double[]ret=newDouble[valSet.size()];valSet.toArray(ret);returnret;}

解决方案四:
当然,你可以更精简,比如下面的代码:Double[]process(String[]strs){Set<Double>valSet=newTreeSet<Double>();for(Stringstr:strs){try{doubleval=Double.parseDouble(str.replaceAll("m*",""));valSet.add(val);}catch(Exceptione){}}return(Double[])valSet.toArray();}

时间: 2024-12-05 07:11:11

java字符串排序的相关文章

Java字符串排序中文+数字

  思路: 在Java中,排序需要复写的是 equals 方法 和 Comparable<T> 接口 的public int compareTo(T o); 方法 步骤: 1. 使用正则表达式来判断数字,多个连续的数字作为一组, 2. 一次检索出数字组合, 3. 检出下一组数字,如果有,则进入步骤4,否则进入步骤6. 4. 如果两组数字出现的位置相等,并且前面部分的字符串相等,则进入第5步.否则break,跳到第6步. 5. 如果前面部分的字符串完全一致.则比较两个数字的大小,如果大小一致,则

java实现归并排序和树形排序(锦标赛制):java字符串分隔或的形式

String[] b=str.split("query|,");//query分隔或者逗号分隔 归并排序,递归实现 public class MergeSort2 { // 对data数组中的 [a,b) 区间的数据进行归并排序, // 排序结束后,[a,b)间数据处于升序有序状态 static void mergeSort(int[] data, int a,int b) { if (a >= b) return; int mid=(a+b)/2;//拆分排序 mergeSor

java 排序-Java list排序 list的元素类型为包含数字和字符串的自定义类型

问题描述 Java list排序 list的元素类型为包含数字和字符串的自定义类型 Java中自定义了一个数据结构:linkType{string str; int weight} 包含一个字符串,还有该字符串的权重 现在有List list = new ArrayList 希望能将list中的linkType按照字符串的权重重新排序 解决方案 楼上说的对. 使用java原生的API很方便的可以排序. 第一步对你的自定义类要实现Comparable接口,实现它的compareTo方法,在这个方法

java字符串按长度大小排序

问题描述 java字符串按长度大小排序 由用户自己随意输入不同的字符串,,怎样按输入的字符串长度大小来排序. 解决方案 代码如下 package Demo; public class Demo_120901 { public static void sortStringArray(String[] arrStr) { String temp; for (int i = 0; i < arrStr.length; i++) { for (int j = arrStr.length - 1; j >

java字符串数组进行大小排序的简单实现_java

若是将两个字符串直接比较大小,会包:The operator > is undefined for the argument type(s) java.lang.String, java.lang.String的错误. 字符串比较大小可以用字符串长度或者是比较字符串内字符的ASCII码值,前者太简单,就不进行讲述记录. 字符串用ASCII码比较大小,规则是: 1.比较首字母的ASCII码大小 2.若是前面的字母相同,则比较之后的字母的ASCII码值 3.若是一个字符串从首字母开始包含另一个字符串

关于java字符串去重的问题

问题描述 关于java字符串去重的问题 今天碰到个java字符串去重的问题,尝试着用另一种方法TreeSet去做一下,出来的结果确实去重了,但是会按abcd的顺序排列,而不是给定的字符串顺序.问一下怎么纠正? public void Method_2(String str) { // 原始输入 System.out.println("原始的字符串:" + str); long startTime = System.nanoTime(); // 将输入转为字符串数组 String[] a

JAVA字符串转日期或日期转字符串

文章中,用的API是SimpleDateFormat,它是属于java.text.SimpleDateFormat,所以请记得import进来! 用法: SimpleDateFormat sdf = new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " ); 这一行最重要,它确立了转换的格式,yyyy是完整的公元年,MM是月份,dd是日期,至于 HH:mm:ss就不需要我再解释了吧! PS:为什么有的格式大写,有的格式小写,那是怕避免混淆,例如MM

java的排序和搜索

Java 1.2添加了自己的一套实用工具,可用来对数组或列表进行排列和搜索.这些工具都属于两个新类的"静态"方法.这两个类分别是用于排序和搜索数组的Arrays,以及用于排序和搜索列表的Collections. 1. 数组 Arrays类为所有基本数据类型的数组提供了一个过载的sort()和binarySearch(),它们亦可用于String和Object.下面这个例子显示出如何排序和搜索一个字节数组(其他所有基本数据类型都是类似的)以及一个String数组:   //: Array

Java对象排序的3种实现方法

/** * Java对象排序的3种实现方式 * @author zhangwenzhang * */public class TestObjectSort { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub /**方法1 * 使用Collections.sort(List, Comparator)实现,必须实现Comparator的一个比较器并复写co