import java.util.Comparator;
public class MyComparator implements Comparator<Object> {
private int count = 0;
/**
* compare:排序
* @param @return 设定文件
* @return String 对象类型
* @throws
* @since CodingExample Ver 1.1
*/
//例子:对字符串:id$$$page进行排序,先根据id排,id相同用page排序。
public int compare(Object obj1, Object obj2) {
int returnvalue = 0;
if (obj1 instanceof String) {
String str1 = (String) obj1;
String str2 = (String) obj2;
if (str1.indexOf("$$$") > 0) {
count = 0;
getNum(str1);
if (count == 2) {
String id1 = str1.substring(0, str1.indexOf("$$$"));
String strpage1 = str1.substring(str1.indexOf("$$$") + 3);
String page1 = strpage1.substring(0, strpage1.indexOf("$$$"));
Integer intpage1 = 0;
try {
intpage1 = Integer.valueOf(page1);
} catch (NumberFormatException e) {
e.printStackTrace();
}
String id2 = str2.substring(0, str2.indexOf("$$$"));
String strpage2 = str2.substring(str2.indexOf("$$$") + 3);
String page2 = strpage2.substring(0, strpage2.indexOf("$$$"));
Integer intpage2 = 0;
try {
intpage2 = Integer.valueOf(page2);
} catch (NumberFormatException e) {
e.printStackTrace();
}
//先根据id排,相同则根据intpage2排
returnvalue = (compareStr(id1, id2) == 0 ? (compareInt(intpage1, intpage2) == 0 ? 0 : compareInt(intpage1, intpage2)) : compareStr(id1, id2));
}
}
}
return returnvalue;
}
/**
* compareStr:对String类型排序
* @param @return 设定文件
* @return String 对象类型
* @throws
* @since CodingExample Ver 1.1
*/
public int compareStr(String o1, String o2) {
String s1 = (String) o1;
String s2 = (String) o2;
int len1 = s1.length();
int len2 = s2.length();
int n = Math.min(len1, len2);
char v1[] = s1.toCharArray();
char v2[] = s2.toCharArray();
int pos = 0;
while (n-- != 0) {
char c1 = v1[pos];
char c2 = v2[pos];
if (c1 != c2) {
return c1 - c2;
}
pos++;
}
return len1 - len2;
}
/**
* compareInt:对int类型排序
* @param @return 设定文件
* @return String 对象类型
* @throws
* @since CodingExample Ver 1.1
*/
public int compareInt(Integer o1, Integer o2) {
int val1 = o1.intValue();
int val2 = o2.intValue();
return (val1 < val2 ? -1 : (val1 == val2 ? 0 : 1));
}
/**
* compareBoolean:对Boolean类型排序
* @param @return 设定文件
* @return String 对象类型
* @throws
* @since CodingExample Ver 1.1
*/
public int compareBoolean(Boolean o1, Boolean o2) {
return (o1.equals(o2) ? 0 : (o1.booleanValue() == true ? 1 : -1));
}
private void getNum(String name) {
if (name.contains("$$$")) {
count++;
getNum(name.substring(name.indexOf("$$$") + 1));
} else {
return;
}
}
}
分享到:
相关推荐
java 字符串数字混搭字符串排序是指在 java 中对字符串数字混搭字符串进行排序的操作。这种排序方式需要考虑到字符串中既有字母又有数字的情况,对 sorter 进行自定义实现。 在 java 中,对字符串数字混搭字符串...
在提供的文件列表中,`Zifuchuan.java`可能是实现上述逻辑的源代码,而`www.pudn.com.txt`可能是一个包含测试数据的文本文件,用于测试字符串排序的程序。你可以打开这两个文件查看具体实现和数据内容。
可以将字符串中的不同字符按比例大小排序输出
在Java中,对数字字符串排序通常有两种主要的方法:直接比较字符串和转换为整数后再比较。第一种方法直接使用`compareTo()`或`compareToIgnoreCase()`方法,但这可能会在处理大数字时效率较低。第二种方法是将字符串...
### 字符串排序方法 在JavaScript以及其他的编程语言中,字符串排序是一个常见的需求。无论是对字符串数组进行排序还是对特定的字符串内部字符进行排序,掌握正确的排序方法对于开发者来说至关重要。 #### 标题:...
这个是自己上课写的字符串排序的一个小程序···
在Java编程语言中,字符串排序是一项常见的任务,尤其在处理用户输入数据时。在这个场景中,我们有一个程序,它从用户通过键盘输入的字符串中构建一个列表,将这些字符串保存到一个文件,然后读取这个文件,对字符串...
#### 二、Java字符串排序方法 在Java中,可以通过多种方式实现字符串排序,包括但不限于使用内置的`Collections.sort()`方法(适用于可变字符序列如`ArrayList<Character>`)、自定义比较器以及编写专门的排序算法...
List<String> location=new ArrayList(); 一行代码轻松搞定混合排序问题 Collections.sort(location, new SortUtils(true));
本话题主要关注的是如何对1-9位的数字字符串进行重新排序以形成新的字符串,同时确保新字符串满足特定条件。我们将围绕这个主题展开,深入探讨相关的编程知识和技术。 首先,我们需要理解题目中的“1-9位字符串”。...
本文实例讲述了Java编程实现中英混合字符串数组按首字母排序的方法。分享给大家供大家参考,具体如下: 在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序。例如: String[]...
字符串数组 排序
java代码-使用java字符串排序的源代码 ——学习参考资料:仅用于个人学习使用!
总之,掌握数组和字符串排序对于任何Java开发者来说都是必要的技能。这些排序算法不仅应用于数据结构和算法的学习,也是解决实际问题,如数据分析、数据库查询优化等的基础。通过实践和理解这些基础知识,你可以更好...
Java字符、字符串、数组操作实例,主要是数组的复制、反转字符串中的字符、命令行参数、求字符串的长度及每一个位置上的字符、数组的排序、String类数组的操作等方面的例子,相信对初学者学习Java有帮助的。
在字符串排序中,我们可以将每个字符串视为键值对(Key-Value)的输入,其中Key是字符串本身,Value可以为空。Map阶段将数据分片并进行局部排序,Reduce阶段则负责合并这些局部排序的结果,最终得到全局有序的字符串...
### 字符串排序(Java代码) #### 一、概述 在计算机编程中,字符串排序是一项基本而重要的操作,尤其在处理大量文本数据时尤为重要。Java作为一种广泛应用的编程语言,提供了丰富的工具来处理字符串相关的任务。...
Java 数组排序与分离数字元素和字符串元素的代码实现 Java 是一种广泛使用的编程语言,拥有强大的功能和灵活的应用场景。数组排序是 Java 编程中的一种常见操作,而在实际应用中,数组元素可能包含数字字符串和字符...
根据提供的文档标题“java字母数字混搭字符串排序”及其描述,本文将深入探讨如何在Java中实现对含有字母与数字混合的字符串进行排序的方法。这一技术对于处理包含字母和数字混合的数据集尤其有用,比如在KPI(关键...