精华内容
下载资源
问答
  • 代码逻辑:首先在此背景下,字符串可以先做排序,再做包含关系处理; 说明:因为这个写成了UDF,为了图省事儿直接写在了一个函数里,从代码美观上最好分两个函数; 代码如下: package com.dy.udf; import java....

    背景:用户在输入的内容的时候所有联想词都一步步的传到log中,只需确定最后一步的字符串即可得到最有效的信息

    代码逻辑:首先在此背景下,字符串可以先做排序,再做包含关系处理;

    说明:因为这个写成了UDF,为了图省事儿直接写在了一个函数里,从代码美观上最好分两个函数;

    代码如下:

    package com.dy.udf;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.apache.hadoop.hive.ql.exec.UDF;
    import org.apache.hadoop.hive.ql.udf.UDFType;
    
    @UDFType(deterministic = false)
    public class StrincludecomUUDF extends UDF {
    
    	public String[] evaluate(String[] strarr) {
    
    		try {
    			List<String> result = new ArrayList<>();
    			String temp;
    			for (int i = 0; i < strarr.length; i++) {
    				for (int j = strarr.length - 1; j > i; j--) {
    					if (strarr[i].length() > strarr[j].length()) {
    
    						temp = strarr[i];
    						strarr[i] = strarr[j];
    						strarr[j] = temp;
    					}
    				}
    			}
    			for (int i = 0; i < strarr.length; i++) {
    				int flag = 0;
    				for (int j = i + 1; j < strarr.length; j++) {
    					if (strarr[j].indexOf(strarr[i]) != -1) {
    						flag = 1;
    						continue;
    					}
    				}
    				if (flag == 0) {
    					result.add(strarr[i]);
    				}
    			}
    
    			int ressize = result.size();
    			String[] resArr = new String[ressize];
    			for (int i = 0; i < ressize; i++) {
    				resArr[i] = result.get(i);
    			}
    			return resArr;
    		} catch (Exception e) {
    
    		}
    		return null;
    	}
    
    }
    

    实例测试:

    public static void main(String[] args) {
    		String[] strarr = { "ghfjkk", "a", "ab", "gh", "abc", "abcd", "ab", "ghfj" };
    		
    		String[] re = evaluate(strarr);
    		System.out.println("返回的数组长度" + re.length);
    		for(int i=0;i<re.length;i++){
    				System.out.println(re[i]);
    			}
    			
    	}
    下面这里可加断点测试:
                    int ressize = result.size();
    		System.out.println("list的长度: "+ ressize);
    		String[] resArr = new String[ressize];
    		System.out.println("根据list长度建立的数组的长度: " + resArr.length);
    		for (int i = 0; i < ressize; i++) {
    			resArr[i] = result.get(i);
    			System.out.println("返回的数组依次显示:" + resArr[i]);
    		}

    结果:

    list的长度: 2
    根据list长度建立的数组的长度: 2
    返回的数组依次显示:abcd
    返回的数组依次显示:ghfjkk
    返回的数组长度2
    abcd
    ghfjkk

    展开全文
  • 首先了解下以下两个函数:1....函数先对第一个数组进行排序,接着是其他数组,如果两个或多个值相同,它将对下一个数组进行排序。具体实现代码实例:$data = array(array('id' => 5698,'first_name' => 'Bil...

    首先了解下以下两个函数:

    1.array_column() 返回输入数组中某个单一列的值。

    f1c0ef1346931935d6e7f30d9b3294b4.png

    2.array_multisort() 函数返回排序数组。您可以输入一个或多个数组。函数先对第一个数组进行排序,接着是其他数组,如果两个或多

    个值相同,它将对下一个数组进行排序。

    b4a42e23efe2f1746f00c8a83b11e8ad.png

    具体实现代码实例:

    $data = array(

    array(

    'id' => 5698,

    'first_name' => 'Bill',

    'last_name' => 'Gates',

    ),

    array(

    'id' => 4767,

    'first_name' => 'Steve',

    'last_name' => 'Aobs',

    ),

    array(

    'id' => 3809,

    'first_name' => 'Mark',

    'last_name' => 'Zuckerberg',

    )

    );

    //根据字段last_name对数组$data进行降序排列

    $last_names = array_column($data,'last_name');

    array_multisort($last_names,SORT_DESC,$data);

    var_dump($data);

    //可以使用多个排序条件

    $last_names = array_column($data,'last_name');

    $ids= array_column($data,'id');

    array_multisort($last_names,SORT_DESC,$ids,SORT_ASC,$data);

    var_dump($data);

    注意:报错array_multisort(): Argument #2 is expected to be an array or a sort flag,是因为参数中的第二个参数是常量SORT_DESC,SORT_ASC, 代码中写成了'SORT_DESC' 然后就出现了上面的错误(更多的常量参数可参考官方文档:https://www.php.net/manual/zh/function.array-multisort.php)

    文章来源于:https://www.cnblogs.com/wenzheshen/p/9455554.html

    展开全文
  • php 根据二维数组中的某一字段进行排序:$dataArr = ['0' = ['code' => 'hfvdp','status' => 0,],'1' = ['code' => 'vhbfgjd','status' => 9,],'2' = ['code' => 'cbsdhj','status' => 3,],]$time...

    php 根据二维数组中的某一字段进行排序:

    $dataArr = [

    '0' = [

    'code' => 'hfvdp',

    'status' => 0,

    ],

    '1' = [

    'code' => 'vhbfgjd',

    'status' => 9,

    ],

    '2' = [

    'code' => 'cbsdhj',

    'status' => 3,

    ],

    ]

    $timeKey = array_column( $dataArr, 'status'); //取出数组中status的一列,返回一维数组

    array_multisort($timeKey, SORT_DESC, $dataArr);//排序,根据$status 排序

    注: array_multisort() 不用重新赋值

    结果为:

    //排序后

    $dataArr = [

    '0' = [

    'code' => 'vhbfgjd',

    'status' => 9,

    ],

    '1' = [

    'code' => 'cbsdhj',

    'status' => 3,

    ],

    '2' = [

    'code' => 'hfvdp',

    'status' => 0,

    ],

    ]

    展开全文
  • 3种方法,统计字符串中每种字符的个数并排序,多种解法哟~ str_split()函数很重要//这个方法纯粹是背函数,不解释;function countStr($str){$str_array=str_split($str);$str_array=array_count_values($str_array);...

    3种方法,统计字符串中每种字符的个数并排序,多种解法哟~ str_split()函数很重要

    //这个方法纯粹是背函数,不解释;

    function countStr($str){

    $str_array=str_split($str);

    $str_array=array_count_values($str_array);

    arsort($str_array);

    return $str_array;

    }

    //以下是例子;

    $str="asdfgfdas323344##$\$fdsdfg*$**$*$**$$443563536254fas";

    print_r(countStr($str));

    ?>

    //这个方法有些数据结构的思想,不过还是很好理解的:)

    function countStr2($str){

    $str_array=str_split($str);

    $result_array=array();

    foreach($str_array as $value){//判断该字符是否是新出现的种类,是的话就设置为1,不是的话就自加;

    if(!$result_array[$value]){

    $result_array[$value]=1;

    }else{

    $result_array[$value]++;

    }

    }

    arsort($result_array);

    return $result_array;

    }

    $str="asdfgfdas323344##$\$fdsdfg*$**$*$**$$443563536254fas";

    var_dump(countStr2($str))

    ?>

    //这个方法纯粹是解法一的蹩脚版本,先找出所有字符的总类,然后在一个一个用substr_count函数统计。

    function countStr3($str){

    $str_array=str_split($str);

    $unique=array_unique($str_array);

    foreach ($unique as $v){

    $result_array[$v]=substr_count($str,$v);

    }

    arsort($result_array);

    return $result_array;

    }

    $str="asdfgfdas323344##$\$fdsdfg*$**$*$**$$443563536254fas";

    var_dump(countStr3($str));

    ?>

    *无论是用哪一个方法,都要用到str_split函数,所以说,这个函数很重要哦~

    展开全文
  • * php 针对一维数组字符串长度排序 * $arr 要排序数组 * $order 排序方式:升序--》asc,降序----》desc * $obj 排序目标:根据键----》key,根据值---》val * return 经过排序处理的数组...
  • 思路: 根据题目要求首先我们需要申请动态数组,其次需要一个对字符串进行排序的函数,最后我们需要输出这些字符串。 其中我们用到处理字符串的函数例如:strcmp,strcpy等等,这里我们用strcmp举例子: strcmp函数的...
  • 根据数组里面的时间字符串排序

    千次阅读 2019-06-03 16:31:15
    大致需求就是,有关时间的内容存储到数组里面的某一项,并且是以字符串的形式展示 var data = [{ "id": "001", "time": "2019-5-28" },{ "id": "002", "time": "2019-5-28" },{ "id": "003", "time": ...
  • 对区间列表根据左端点排序: intervals.sort(key=lambda x: x[0]) intervals = sorted(intervals, key=lambda x:x[0]) 对二维列表 lst 根据第 i 列进行排序: lst.sort(key=lambda x: x[i]) lst = sorted(lst,key=...
  • 写一个函数对字符串数组进行排序排序的规则是根据每个字符串中重复出现次数最多的字符出现的次数,在次数相同的情况下根据出现次数第二多的字符排序: 比如: “abcaba”中重复出现次数最多的是a,次数是3,第...
  • 内置对象1.1 内置对象1.2 查文档1.3 Math对象1.4 日期对象1.5 数组对象创建数组的两种方式检测是否为数组添加删除数组元素的方法数组排序数组索引方法数组转换为字符串其他方法1.6 字符串对象基本包装类型字符串的不...
  • 这个函数可以对数组进行分组排序排序根据字符串的相似性,用户可以在第二个参数指定相似程度,比如75表示相似程度在75%以上# [代码名字: Sort list by group]# [代码分类: Python Core]# [代码描述: This function...
  • 工作中经常会遇到对象属性排序的问题,在加密中,根据属性名自然排序,然后拼接成字符串加密,也是很常见的需求,接下来给大家带来一些基本方法: 1.首先是根据首字符自然排序: const obj = {cc:'',dd:'dd',ff:'...
  • } } /** * 对字符串数组进行排序 * @param keys * @return * */ public static ArrayList getUrlParam(ArrayList keys){ for (int i = 0; i () - 1; i++) { for (int j = 0; j () - i -1; j++) { String pre = keys...
  • 4,返回值:转化后的字符串 24.2 基本包装类型 字符串本身没有属性和方法 字符串在调用属性或方法时 1,浏览器自动调用执行操作 2,根据字符串创建基本包装类型对象 3,通过该对象调用之前字符串调用的方法或属性 4...
  • 默认排序顺序是根据字符串UniCode码。因为排序是按照字符串UniCode码的顺序进行排序的,所以首先应该把数组元素都转化成字符串(如有必要),以便进行比较。语法:arrayObject.sort(sortby);参数sortby 可选,用来规定...
  • * 将传入的数组根据当前系统语言,按照中文或英文名重新排序,会影响原数组 * @param list 必填要排序的list * @returns {*} */ export function arraySortByName(list) { if (list === undefined || list === ...
  • 在这里,我们按字母顺序对字符串数组进行排序,即“ John”的“ J”将在“ Chris”之后,因为“ Chris”的第一个字符是“ C”。...现在,根据第一个字符对字符串数组进行排序:Arrays.sort(strA...
  • 1、输入的字符串,可以是手机、邮箱、身份证等 ...2、只将手机、邮箱的字符串筛选出来放到两个数组中,其余的放入yi'ge'shu'zu'zhon 3、数组按照升序排序,比如数组[6,3,8,2,4],按照升序排序后结果为[2,3,4,6,8]
  • /*** 将传入的数组根据当前系统语言,按照中文或英文名重新排序,会影响原数组* @param list 必填要排序的list* @returns {*}*/export function arraySortByName(list) {if (list === undefined || list === null) ...
  • toLowerCase()将字符串转换为小写。 arrayInfos是数组,存储的是对象 这里我是配上一个上下切换的箭头使用的,点击切换上下方向并且排序 sort方法排序操作的是原始数组 如果在属性相等的情况下,想根据另外字段排序...
  • 字符串模式匹配,可以直接调用vector的find函数实现,为了提高效率,首先对数组按照字符串长度进行排序(因为长的不会是短的的子串),然后利用find查找,注意要定义一个判断数组,判断是否已经在ans中,代码如下: ...
  • 既然我们判断了一个矩形能够容下这n个元素,那么我们就可以先定义一个足够放下100个元素的二维数组(防止越界),然后判断n个元素需要多大的矩阵存放后再向二维数组存放这个矩阵。 最后根据n的大小
  • 例如:一个对象数组arr :对姓名字段值(name)含有“小明”字符串进行排序;  functionbubbleSort(){  var newArr = [];  angular.forEach(arr,function(item){  if(item.name.indexOf('小明')>-1){  ...
  • 工作中遇到js数组排序问题,数组中存储的都是对象,于是就百度...* js数组排序 支持数字和字符串 * @param params * @param arrObj obj 必填 数组对象 * @param keyName string 必填 要排序的属性名称 * @param type...
  • 但是他有很大的局限性,最大的问题就是如果最大值和最小值之间相差太大的话,那么会浪费掉很大的空间,比如要排序{1,10000,99,64,120}我们可以根据之前的计算公式最大值减去最小值加一得到计数数组的长度,...
  • Array.sort(getTimeSortByObjPropUp(‘排序依据的属性’)): 说明:因为array.sort(func) sort 方法需要传入一个函数 like: function(a, b) { return a - b } 下面的处理方法在此基础上进行升级,用闭包处理后再...
  • class Demo_15 { public static void main(String[] args) { //创建一个字符串数组 String[] strArr = {"sdkjf","deadg",... //排序前遍历字符串数组 printStrArr(strArr); //排序 sortArr(strArr);...
  • 字符串排序

    2017-08-13 14:26:18
    字符串排序 利用toCharArray函数将字符串转换为字符数组根据各个字符的ASCII值大小进行比较即可 public static String sort(String str){ //利用toCharArray可将字符串转换为char型的数组 char[] s1 = str....
  • 本题希望通过回调函数,定义一个冒泡排序函数,可以根据函数指针指向不同的比较函数,分别实现从大到小和从小到大的排序。 希望通过这道题目,可以帮助大家理解函数指针与回调函数。本题较为简单,仅能处理整数的...
  • 内置对象APIApplication Programming Interface , 应用程序编程接口能够 **提供编程能力(让编程更方便的能力)** 的事物称为应用...由于功能有许多,所以**根据功能进行的分类**,并组成了多个对象形式,称为**内置...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 875
精华内容 350
关键字:

数组根据字符串排序