字符串排序简单的工具类,数组转list,list转数组
public static void main(String[] args) {
/* String[] str = {"a", "c", "b", "x", "y", "z", "j", "h", "n", "m", "q"};*/
/* printArr(str);
ArraySort(str, 1); //练习排序方法
// Arrays.sort(str); 排序用法
printArr(str);*/ /* List <String> srtList = Arrays.asList("a", "c", "b", "x", "y", "z", "j", "h", "n", "m", "q");
;
//printList(arrToList(str));
*//*ListToArr(srtList);*//*
printArr(ListToArr(srtList));*/ String str = "asdfghjklmnbvcxzqwertyuiop";
System.out.println(str); str = StringSort(str, 1);
System.out.println(str);
} /**
*
* @param str 排序字符串
* @param sortType 排序规则,0--从小到大,1--从大到小
* @return
*/
public static String StringSort(String str, int sortType) { char[] ch = str.toCharArray();
for (int i = 0; i < ch.length; i++) {
for (int j = i + 1; j < ch.length; j++) {
String stri = String.valueOf(ch[i]);
String strj = String.valueOf(ch[j]);
if (sortType == 0) {
if (stri.compareTo(strj) > 0) {
chaSwap(ch, i, j);
}
} else {
if (stri.compareTo(strj) < 0) {
chaSwap(ch, i, j);
}
}
} } str = "";
for (int i = 0; i < ch.length; i++) {
str += String.valueOf(ch[i]);
} return str;
} public static void chaSwap(char[] ch, int x, int y) { char temp = ch[x];
ch[x] = ch[y];
ch[y] = temp;
} /**
* @param arr 排序数组
* @param SortType 排序规则,0---从小到大,1从大到小
* @return
*/
public static String[] ArraySort(String[] arr, int SortType) { if (arr == null)
return null; if (null != arr && arr.length > 0) {
int len = arr.length; for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++) { if (SortType == 0) {//从小到大排序
if (arr[i].compareTo(arr[j]) > 0) {
swap(arr, i, j);
}
} else { if (arr[i].compareTo(arr[j]) < 0) {
swap(arr, i, j);
}
}
} } }
return arr;
} /**
* 交换两个元素的位置的方法
*
* @param arr 需要交换元素的数组
* @param x 索引i
* @param y 索引j
*/
public static void swap(String[] arr, int x, int y) { String temp = arr[x];
arr[x] = arr[y];
arr[y] = temp; } /**
* 打印字符串数组
*
* @param str
*/
private static void printArr(String[] str) {
for (int i = 0; i < str.length; i++) {
System.out.print(str[i] + "\t");
}
System.out.println();
} public static List <Object> arrToList(Object arr[]) {
return Arrays.asList(arr);
} private static void printList(List <Object> list) { for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i) + "\t");
}
System.out.println();
} public static String[] ListToArr(List <String> list) { return (String[]) list.toArray(); }
字符串排序简单的工具类,数组转list,list转数组的更多相关文章
- Java中将字符串与unicode的相互转换工具类
unicode编码规则 unicode码对每一个字符用4位16进制数表示.具体规则是:将一个字符(char)的高8位与低8位分别取出,转化为16进制数,如果转化的16进制数的长度不足2位,则在其后补0 ...
- Java实现单词自定义排序|集合类、工具类排序、comparable、comparator接口
课题 针对单词进行排序,先按字母的长度排序,长者在前: 在长度相等的情况下,按字典降序排序. 例如,有单词序列"apple banana grape orange",排序后输出结果 ...
- java数据结构1--数组、排序和Arrays工具类
数组:Array 数组的定义 数组的内存结构 数组定义常见问题 数组常见操作 Java参数传递问题--值传递 二维数组 1.数组概念 同一种类型数据的集合,可以是基本数据类型,也可以是引用数据类型. ...
- Android初级教程:对文件和字符串进行MD5加密工具类
转载请注明出处:http://blog.csdn.net/qq_32059827/article/details/52200008 点击打开链接 之前写过一篇博文,是针对字符串进行md5加密的.今 ...
- JDBC第一篇--【介绍JDBC、使用JDBC连接数据库、简单的工具类】
1.什么是JDBC JDBC全称为:Java Data Base Connectivity,它是可以执行SQL语句的Java API 2.为什么我们要用JDBC 市面上有非常多的数据库,本来我们是需要 ...
- JDBC【介绍JDBC、使用JDBC连接数据库、简单的工具类】
1.什么是JDBC JDBC全称为:Java Data Base Connectivity,它是可以执行SQL语句的Java API 2.为什么我们要用JDBC 市面上有非常多的数据库,本来我们是需要 ...
- SSM-MyBatis-10:Mybatis中SqlSession的getMapper()和简单的工具类MyBatisUtils
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- getMapper的作用,获取到接口,直接通过点的方式调用方法,以免直接手打的方式写错方法名,(强类型的方式) ...
- 基于ansj_seg和nlp-lang的简单nlp工具类
1.首先在pom中引入ansj_seg和nlp-lang的依赖包, ansj_seg包的作用: 这是一个基于n-Gram+CRF+HMM的中文分词的java实现: 分词速度达到每秒钟大约200万字左右 ...
- 《java入门第一季》之对文件和字符串进行MD5加密工具类
上一篇介绍了MD5加密算法,之前写的代码有些冗余,而且可读性很差.今天把对文本数据的加密,以及获取文件的md5值做一个封装类.代码如下: package com.itydl.utils; import ...
随机推荐
- eclipse运行项目,tomcat报错:Exception in thread :http-bio-8080-exec-4
eclipse运行项目,tomcat报错:Exception in thread :http-bio-8080-exec-4 转自 https://www.cnblogs.com/yby-blogs/ ...
- Redis发布订阅方法
进入redis中 docker run -it redis:latest redis-cli -h 192.168.28.56 (本机的ip地址) 以下实例演示了发布订阅是如何工作的.在我们实例中我们 ...
- python 报错 TabError: inconsistent use of tabs and spaces in indentation
写python的时候如果出现如题的错误 TabError: inconsistent use of tabs and spaces in indentation 意为:制表符错误:缩进中制表符和空格使 ...
- 个人信息——头像更换(拍照或相册上传)~ 微信小程序
微信小程序中 在用户信息中关于用户头像更换(拍照或相册上传)功能实现. 图像点击触发事件: <image src='{{personImage}}' bindtap='changeAvatar' ...
- Azkaban启动web--javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? at sun.se
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? at sun.se javax.net.ssl. ...
- Windows编译安装使用cephfs客户端
本文介绍如何将cephfs映射到windows的一个盘上,以磁盘映射的方式访问cephfs. 1.下载必要安装包 tdm-gcc:(安装时选32位)https://sourceforge.net/pr ...
- angular6 input节流
一直以为 pipe(debounceTime(1000), distinctUntilChanged()) 不起作用 原因:使用方法错误 <input type="text&qu ...
- CSS3特性
2018-08-20 CSS3:用于控制网页的样式和布局 1.transform:rotate(30deg); CSS3 模块 选择器 盒模型 背景和边框 文字特效 2D/3D转换 动画 多 ...
- C# 多线程 类构造函数 类方法之间的关系
先定一个类,既有构造函数又有类方法: public class WriteNumber { /// <summary> /// 构造函数 /// </summary> publ ...
- Touch事件分发源码解析
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 以下源码基于Gingerbread 2.3.7 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1.先看ViewGroup的di ...