精华内容
下载资源
问答
  • C++ string数组字符串排序 sort

    万次阅读 2018-12-27 17:54:54
    功能:给定一个string的字符数组(左图),返回一个已经排序好的string的字符数组(右图)。 c++实现如下: #include <iostream> #include <algorithm> #include <string&...

    功能:给定一个string的字符数组(左图),返回一个已经排序好的string的字符数组(右图)。

    c++实现如下:

    #include <iostream>
    
    #include <algorithm>
    #include <string>
    #include <vector>
    using namespace std;
    
    void sort_string(string *in_array, int n, string *out_array)
    {
    	vector<string> strArray;
    	int i,j = 0;
    	for (int i = 0; i < n; i++)
    	{ 
    		strArray.push_back(in_array[i]);
    	}
    	sort(strArray.begin(), strArray.end());
    	vector<string>::iterator st;
    	for (st = strArray.begin(); st != strArray.end(); st++)
    	{
    		//cout << *st << endl;//打印结果
    		out_array[j++] = *st;
    	}
    }
    
    int main()
    {
    	string str[4] = { "hello, world!", "welcome to cpp.", "effective c++", "exceptional c++" };
    	string str_out[4];
    	sort_string(str, 4, str_out);
    	for (int j = 0; j < 4; j++)
    	cout << str_out[j] << endl;
    }

    vs运行结果如下:

    TIP:

    string数组传参 数组名就可以,形参类型string * 

    string [5]; 不用初始化,类会调用默认析构函数初始化,char 数组却不行!!!

    展开全文
  • java String[]字符串数组自动排序的简单实现 java String[]字符串数组自动排序的简单实现
  • Java对List集合,String数组排序

    千次阅读 2021-02-26 18:50:01
    在平时开发的过程中,经常会遇到需要对数组、集合中元素按规则进行排序,本文记录在开发过程中可能遇到的情况以及相关的完整代码示例。知识点Comparable接口实现了该接口的对象,必须重写compareTo方法,对象实现了...

    在平时开发的过程中,经常会遇到需要对数组、集合中元素按规则进行排序,本文记录在开发过程中可能遇到的情况以及相关的完整代码示例。

    知识点

    Comparable接口

    实现了该接口的对象,必须重写compareTo方法,对象实现了该接口,则该对象具有排序功能,比如String、Integer等。

    Comparator接口

    要实现自定义排序器的时候,需要实现该接口。当某个类不具备排序功能或者已有的排序功能不足以支撑你需求的时候,就是自定义排序器登场的时候了。比如String内置的排序实现按字符顺序排序,那我想按字符串长度排序咋办呢?这时就可以自定义实现Comparator的对象了。

    数组(比如String[])排序使用Arrays.sort

    集合(比如List)排序使用Collections.sort

    实例

    1. 默认String排序示例

    1.1 数组排序用法

    String[] strArr = new String[]{"zhangsan","lisi","wangwu"};

    //数组默认按字符升序排序

    Arrays.sort(strArr);

    System.out.println("默认按字母升序排序:");

    for (String str:strArr) {

    System.out.println(str);

    }

    1.2 集合排序用法

    List strList = new ArrayList<>();

    strList.add("zhangsan");

    strList.add("lisi");

    strList.add("wangwu");

    //集合默认按字符升序排序

    Collections.sort(strList);

    System.out.println("默认按字母升序排序:");

    for (String str:strList) {

    System.out.println(str);

    }

    以上两个例子都是输出:

    98b3faf324a5

    在这里插入图片描述

    2.自定义排序器,String数组按字符串长度倒序

    创建自定义排序器StringComparator

    package com.simon.interfacedemo.sortdemo.stringdemo;

    import java.util.Comparator;

    /**

    * @Description: 通过实现Comparator接口,实现自定义排序

    */

    public class StringComparator implements Comparator{

    /**

    * 按字符串长度降序排序

    */

    @Override

    public int compare(String o1, String o2) {

    return o1.length() > o2.length() ? -1 : 1;

    }

    }

    2.1 数组使用StringComparator排序器

    String[] strArr = new String[]{"zhangsan","lisi","wangwu"};

    //自定义排序,按字符串长度升序

    Arrays.sort(strArr,new StringComparator());

    System.out.println("自定义排序,按字符串长度降序排序:");

    for (String str:strArr) {

    System.out.println(str);

    }

    2.2 集合使用StringComparator排序器

    List strList = new ArrayList<>();

    strList.add("zhangsan");

    strList.add("lisi");

    strList.add("wangwu");

    //自定义排序,按字符串长度降序

    Collections.sort(strList,new StringComparator());

    System.out.println("自定义排序,按字符串长度降序排序:");

    for (String str:strList) {

    System.out.println(str);

    }

    以上两个例子都是输出:

    98b3faf324a5

    在这里插入图片描述

    3.自定义类实现Comparable接口,使类具有排序功能

    自定义Student类,实现Comparable接口,重写compareTo方法,按age升序排序

    public class Student implements Comparable{

    private String name;

    private Integer age;

    public Student(String name,Integer age){

    this.name = name;

    this.age = age;

    }

    public String getName() {

    return name;

    }

    /**

    * 实现compareTo接口方法,按age升序。

    * @param o

    * @return 返回1:大于,0:等于,-1:小于

    */

    @Override

    public int compareTo(Student o) {

    return Integer.compare(age,o.age);

    }

    /**

    * 重写toString方法,方便System.out.println打印出详细的信息。

    */

    @Override

    public String toString() {

    return "Student{" +

    "name='" + name + '\'' +

    ", age=" + age +

    '}';

    }

    }

    3.1 Student数组按age升序排序

    Student[] students = new Student[3];

    students[0] = new Student("zhangsan",30);

    students[1] = new Student("lisi",28);

    students[2] = new Student("wangwu",33);

    System.out.println("通过student实现的默认排序,根据age升序排序:");

    Arrays.sort(students);

    for (Student student : students) {

    System.out.println(student);

    }

    3.2 Student集合按age升序排序

    List studentList = new ArrayList<>();

    studentList.add(new Student("zhangsan",30));

    studentList.add(new Student("lisi",28));

    studentList.add(new Student("wangwu",33));

    System.out.println("通过student实现的默认排序,根据age升序排序:");

    Collections.sort(studentList);

    for (Student student : studentList) {

    System.out.println(student);

    }

    以上两个例子都是输出:

    98b3faf324a5

    在这里插入图片描述

    4.自定义排序器,按Student的name长度升序排序

    创建自定义排序器StudentComparator

    package com.simon.interfacedemo.sortdemo.studentdemo;

    import java.util.Comparator;

    /**

    * @Description: 通过实现Comparator接口,实现自定义排序

    */

    public class StudentComparator implements Comparator{

    /**

    * 按名字长度升序排序

    */

    @Override

    public int compare(Student o1, Student o2) {

    return o1.getName().length() > o2.getName().length() ? 1 : -1;

    }

    }

    4.1 数组使用StudentComparator排序器

    Student[] students = new Student[3];

    students[0] = new Student("zhangsan",30);

    students[1] = new Student("lisi",28);

    students[2] = new Student("wangwu",33);

    System.out.println("通过自定义排序器实现的排序,根据名字长度排序:");

    Arrays.sort(students,new StudentComparator());

    for (Student student : students) {

    System.out.println(student);

    }

    4.2 集合使用StudentComparator排序器

    List studentList = new ArrayList<>();

    studentList.add(new Student("zhangsan",30));

    studentList.add(new Student("lisi",28));

    studentList.add(new Student("wangwu",33));

    System.out.println("通过自定义排序器实现的排序,根据名字长度排序:");

    Collections.sort(studentList,new StudentComparator());

    for (Student student : students) {

    System.out.println(student);

    }

    以上两个例子都是输出:

    98b3faf324a5

    在这里插入图片描述

    后续

    以上列出了实际开发中可能用到的数组、集合的排序方式。使用lambda还可以更简化,后续再总结出来。

    以上示例都可以通过我的GitHub获取完整的代码,点击获取

    展开全文
  • String数组排序去重

    千次阅读 2019-05-22 15:16:52
    利用TreeSet实现, ... public static void main(String[] args) { String[] a = { "a", "cb", "c", "a", "ab" }; TreeSet<String> vinFlag = new TreeSet<String>(); for (S...

    利用TreeSet实现,

    public class TestArray {
    
    	public static void main(String[] args) {
    		String[] a = { "a", "cb", "c", "a", "ab" };
    		TreeSet<String> vinFlag = new TreeSet<String>();
    		for (String s : a) {
    			vinFlag.add(s);
    		}
    		for (String s : vinFlag) {
    			System.out.print(" " + s);
    		}
    	}
    
    }

    执行效果如下:

    展开全文
  • 主要介绍了java实现6种字符串数组排序(String array sort),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 实现对String类型的数组进行排序

    千次阅读 2019-08-16 11:04:26
    String类型数组排序数组排序代码 数组排序 对于基本数据类型的数组,我们可以通过java.util包中的Arrays类调动sort方法进行排序。 对于引用类型的数组,我们可以实现Comparator接口,并重写他的compare方法。 对于...

    String类型数组排序

    数组排序

    对于基本数据类型的数组,我们可以通过java.util包中的Arrays类调动sort方法进行排序。
    对于引用类型的数组,我们可以实现Comparator接口,并重写他的compare方法。
    对于compare方法的放回值,如果是大于则返回正数,小于则返回负数,等于则返回0。

    代码

    import java.util.Arrays;
    import java.util.Comparator;
    
    //需求:对String类型的数组进行排序
    public class TestDemo2 implements Comparator<String> {
    
        public static void main(String[] args) {
            String [] arr={"haha","lala","ggg"};
            char [] ch={'a','g','b'};
            Arrays.sort(ch);
    
    
            sort(arr);
            for (int i=0;i<arr.length;i++){
                System.out.println(arr[i]);
            }
        }
    
        public static  void sort(String [] arr){
            TestDemo2 testDemo2=new TestDemo2();
    
            for (int i=0;i<arr.length;i++){
                for(int j=i+1;j<arr.length;j++){
                    String str=null;
                    if(testDemo2.compare(arr[i],arr[j])>0){
                        str=arr[j];
                        arr[j]=arr[i];
                        arr[i]=str;
                    }
                }
    
            }
        }
    
    
        public int compare(String s1, String s2) {
           Character ch1= s1.charAt(0);
           Character ch2=s2.charAt(0);
    
           return (ch1-ch2)>0?1:(ch1-ch2)==0?0:-1;
        }
    }
    
    
    
    
    展开全文
  • 为普通数组和对象数组排序,对象数组排序时,可指定排序所依据的对象属性,汉字将以汉语拼音为序。
  • Java之字符串数组排序(介绍两种方式)

    万次阅读 多人点赞 2018-09-03 16:32:52
    对于字符串数组的大小排序,首先需要做的就是比较两个字符串的大小,如果直接使用&gt;或&lt;等符号比较字符串的大小,会直接报出错误:The operator &gt; is undefined for the argument type(s) java....
  • C++字符串数组排序技巧

    千次阅读 2021-01-25 11:11:07
    #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<algorithm> #include<...string> #include<unordered_set> #include<iterator> #include<sstream&g.
  • 再来说排序,我们这里为了解决问题,就不自己实现排序了,直接使用Arrays类中static sort()排序算法,同时添加一个add()方法可以实现对域中数组进行添加,最后重写这个类的toString()使之能够按照格式输出我们的...
  • C# 字符串数组 随机排序 方法 通过生成随机数,来对换改变任意数组变量值,此方法相对其它类型数组也通用
  • Java字符串数组排序

    千次阅读 2019-04-22 11:10:30
    利用一个字符串数组排序讲解anonymous class,method reference以及lambda expression。后面代码体现了,inner class的lambda可以用整个outer class的field,但是必须是final类型才可以直接食用
  • 正确做法: #include<iostream> #include<algorithm> using namespace std;... string s="Qasdaaddj"; sort(s.begin(),s.end()); cout<<s<<endl; return 0; } 错误做法: ...
  • 他们可以将字符串添加到数组中,从数组中删除字符串,在数组中搜索字符串,最终他们将能够对数组进行排序排序使我很困惑。我尝试了几种不同的方法。第一种方法是将数组转换为ArrayList并使用Collections对...
  • 二维数组排序

    2013-09-29 17:01:09
    // 二维数组冒泡排序 public static void main(String[] args) { int i=0, j=0, temp = 0; int[][] nums1 = { { 34, 1, 22, 5 }, { 28, 98, 15, 32 }, { 33, -5, 17, 41 } }; int rows = nums1.length; //二维...
  • 本文实例讲述了C#数组排序的两种常用方法。分享给大家供大家参考。具体如下: 1.第一个例子 定义代码 #region Array数组排序1 public class Pigeon : IComparable //类元素本身继承比较接口 { int XValue; int ...
  • 任意数组排序

    2014-08-30 14:24:24
    任意数组排序 很经典经典 学习交流
  • 简单实现二维string数组存放薪金和职员姓名,以及插入、冒泡排序、删除等操作。上财c++二维数组作业题。
  • 6种字符串数组的java排序 (String array sort) 注意,本文不是字符串排序,是字符串数组排序。 方法分别是: 1、低位优先键索引排序 2、高位优先建索引排序 3、Java自带排序(经过调优的...
  • string数组按照字母排序

    千次阅读 2017-08-25 11:08:44
    // 获取文件中的单词,输出到数组str中,并进行排序 void paxu() { ifstream infile("字符处理.txt"); string str[10], tame; int count_str = 0; infile >> str[count_str]; while (!infile.eof()) ...
  • 问题:将两个已排序数组合并成一个排序数组 这里先不考虑大数据量的情况(在数据量很大时不知大家有什么好的思路或方法?),只做简单数组的处理。 简单代码如下: 说明:之所以merge函数定义成返回数组长度,是因为...
  • Go语言的数组排序, map的排序

    千次阅读 2018-05-09 17:11:51
    笔者在写项目之中因为一起需求,从本地读取相应的值Json配置表与玩家自己的值进行比较(范围试的比较)从而得出...第一步我们先准备一个知识点就是数组排序大小(下面内容是参考的大佬的文章) 对于 int 、 flo...
  • Java数组排序

    千次阅读 2021-02-26 21:24:19
    有的时候需要对数组里的element进行排序。当然可以自己编写合适的排序方法,但既然java包里有自带的Arrays.sort排序方法,在 数组元素比较少的时候为何不用?Sorting an Array 1. 数字排序 int[] intArray = new int...
  • Java实现数组排序

    千次阅读 2020-12-01 10:31:45
    选择排序法即是先将第一个数据分别与右侧其他数据依次比较,当第一个数据较大时,对调两数据位置,最终第一个位置的数据将是数组元素的最小值;再对第二个数据分别与右侧其他数据依次比较,当第二个数据较大时,对调...
  • JS对象字符串数组排序

    千次阅读 2017-07-13 17:52:38
    先以name进行排序,如果name相同,再以addr排序 arr . sort ( function (obj1, obj2) { if (obj1.name == obj2.name) { return obj1. addr > obj2. addr ; } return obj1.name > obj2.name; }) 排序后...
  • 使用结构体数组排序

    千次阅读 2020-11-05 22:06:48
    案例描述:使用一个学生结构体,将班级中的学生按照成绩来使用冒泡排序排序输出 [ 分析:步骤 ] 1、创建一个学生结构体 struct Student //学生结构体 { int age; int score; string name; }; 2、创建一个学生...
  • 字符串数组排序(三)

    千次阅读 2019-04-13 17:14:55
    东家蝴蝶西家飞,白骑少年今日归。 愿,所有迷茫的人,都不再迷茫的,...常见的排序是数字型数组排序,有冒泡法,快速排序法,插入法等。 字符串数组也可以进行相应的排序,只是字符串之间的比较并不是通过 > ...
  • 1、今天遇到一道笔试题,按照一个给定数组里的顺序给另外一个数组排序,要求:为了节省空间,不能额外新建数组 //数组中实体对象 public class Test { private Integer id; private String name; public Test...
  • 数组排序:sort()方法

    千次阅读 2019-03-21 20:24:17
    sort()方法用原地算法对数组的元素进行排序,并返回数组排序算法现在是稳定的。默认排序顺序是根据字符串Unicode码点。默认从小到大排序(按照第一个字符排序,回调函数可以按照你设置的规则) arr.sort(...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 417,022
精华内容 166,808
关键字:

怎么把string数组排序