Java字符串的字符进行排序
Posted 努力努力再努力²
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java字符串的字符进行排序相关的知识,希望对你有一定的参考价值。
要求:
对 “abc”,“fcc”,“egfd”,“asd”,“rtgh”,“deghk”,"fcc"字段进行排序,要求满足其为升序排列同时每个字符串里也是升序排列
思路:
- 方法1:冒泡排序 :
思路:先获取字符串数组里的每个字符串,然后使用toCharArray()方法得到这个字符串的char[] 再对char数组里的元素进行对比,冒泡排序前面大的与后面交换顺序,再把得到的char数组重新转换为String,存入到一个新的String数组中,然后在整体对新数组中各个字符串使用冒泡排序从而得到结果) - 方法2:使用 Arrays.sort(s);方法进行排序
import java.util.Arrays;
public class 字符排序
public static void main(String[] args)
String[] str = new String[]"abc","fcc","egfd","asd","rtgh","deghk","fcc";
/*方法1:冒泡排序 :
思路:先获取字符串数组里的每个字符串,然后使用toCharArray()方法得到这个字符串的char[] 再对char数
组里的元素进行对比,冒泡排序前面大的与后面交换顺序,再把得到的char数组重新转换为String,存入到一个新的String
数组中,然后在整体对新数组中各个字符串使用冒泡排序从而得到结果)
*/
printArr(stringRank(test(str)));
//方法2:使用 Arrays.sort(s);方法进行排序
String[] s = sortChar(str);
Arrays.sort(s);
printArr(s);
//得到一个每个字符串里元素已经进行过排序的新字符串数组
private static String[] test(String[] str)
String st[] = st = new String[str.length];
for (int i = 0; i < str.length; i++)
char[] c = str[i].toCharArray();
charRank(c);
String s = new String(c);
st[i] = s;
return st;
//对字符串里元素进行排序
private static void charRank(char[] c)
for (int j = 0; j < c.length; j++)
for (int j2 = 0; j2 < c.length-j-1; j2++)
if(c[j2]>c[j2+1])
char len = c[j2];
c[j2] = c[j2+1];
c[j2+1] = len;
/*
对新字符串数组里的字符串进行排序(升序)字符串比较使用compareTo()方法,
String本身并不具备比较大小功能,它的String对象实现了Comparable接口,这个接口是具有比较大小功能的接口,里面定义了比较方法compareTo()方法,
所以如果我们定义了一个类,这个类产生的对象需要比较大小就需要去实现Comparable接口,重写compareTo()方法,这种
排序成为类的自然排序,compareTo()方法称为自然比较方法,因为String类已经实现了compareTo()方法,所以这里可以直接使用
该方法的比较对象与指定对象的顺序。
compareTo(T o) 返回值:int 返回0(两者相等),负数(对象小于参数),正数(对象大于参数) 参数o为要比较的对象
*/
private static String[] stringRank(String[] str)
for (int i = 0; i < str.length; i++)
for (int j = 0; j < str.length - i - 1; j++)
if (str[j].compareTo(str[j + 1]) > 0)
String s = str[j];
str[j] = str[j + 1];
str[j + 1] = s;
return str;
//方法2
private static String[] sortChar(String[] str)
String[] s = new String[str.length];
for (int i = 0; i < str.length; i++)
char[] c = str[i].toCharArray();
Arrays.sort(c);
s[i] = String.valueOf(c);
return s;
//打印字符串数组
private static void printArr(String[] str)
for (int i = 0; i < str.length; i++)
System.out.print(str[i]+"\\t");
System.out.println();
————————————————
版权声明:本文为CSDN博主「qq_37850436」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37850436/article/details/79464662
以上是关于Java字符串的字符进行排序的主要内容,如果未能解决你的问题,请参考以下文章
Java数组问题<现在有一组无序字符序列: a、c、u、b、e、p、f、z.按字母顺序进行升序排列。