首页 > 其他分享 >逗号分开的字符串,统计个数从高到底排序

逗号分开的字符串,统计个数从高到底排序

时间:2024-05-22 15:42:25浏览次数:22  
标签:SubString begin end Matches 个数 逗号 SubStringCounts 排序 rrr

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  System.RegularExpressions,

 


function CompareStrings(List: TStringList; Index1, Index2: Integer): Integer;
begin
  Result := StrToInt(List.ValueFromIndex[Index2]) - StrToInt(List.ValueFromIndex[Index1]);
end;

procedure TForm1.Button1Click(Sender: TObject);
   var
  InputString: string;
  SubString: string;
  Matches: TMatchCollection;
  Match: TMatch;
  SubStringCounts: TStringList;
begin
   Memo1.Clear;


  InputString := 'www,eee,rrr,rrr,rrr,eee,r';
  SubStringCounts := TStringList.Create;

  // 使用正则表达式匹配字符串    System.RegularExpressions,
  Matches := TRegEx.Matches(InputString, '\w+');

  // 统计各个子字符串出现的次数
  for Match in Matches do
  begin
    SubString := Match.Value;
    if SubStringCounts.IndexOfName(SubString) = -1 then
      SubStringCounts.Add(SubString + '=1')
    else
      SubStringCounts.Values[SubString] := IntToStr(StrToInt(SubStringCounts.Values[SubString]) + 1);
  end;

  // 输出结果
  for SubString in SubStringCounts do
  begin
  Memo1.Lines.Add(SubString)

  end;

  SubStringCounts.Free;


end;
procedure TForm1.Button2Click(Sender: TObject);
var
  InputString: string;
  SubString: string;
  Matches: TMatchCollection;
  Match: TMatch;
  SubStringCounts: TStringList;
begin
  Memo1.Clear;
  InputString := 'www,eee,rrr,rrr,rrr,eee';
  SubStringCounts := TStringList.Create;

  // 使用正则表达式匹配字符串
  Matches := TRegEx.Matches(InputString, '\w+');

  // 统计各个子字符串出现的次数
  for Match in Matches do
  begin
    SubString := Match.Value;
    if SubStringCounts.IndexOfName(SubString) = -1 then
      SubStringCounts.Add(SubString + '=1')
    else
      SubStringCounts.Values[SubString] := IntToStr(StrToInt(SubStringCounts.Values[SubString]) + 1);
  end;

  // 对统计结果进行排序,出现次数最多的放在最前面

  SubStringCounts.CustomSort(CompareStrings);

  // 输出排序后的结果
  for SubString in SubStringCounts do
  begin
   Memo1.Lines.Add(SubString)
  end;

  SubStringCounts.Free;

end;

 

标签:SubString,begin,end,Matches,个数,逗号,SubStringCounts,排序,rrr
From: https://www.cnblogs.com/tulater/p/18206403

相关文章

  • java同时处理多个数据
    在Java中,同时处理多个数据通常涉及多线程、并发编程或异步编程。这里我将提供一个使用多线程的示例,因为多线程是处理多个数据并行的常见方式。首先,我们需要定义一个任务(例如,处理一个数据项),然后创建多个线程来并行执行这些任务。1.使用多线程处理多个数据假设我们有一个整数列表......
  • 判断两个数的最大公约数
    ​常见点击查看代码#include<bits/stdc++.h>usingnamespacestd;intgcd(inta,intb){returnb?gcd(b,a%b):a;}intmain(){inta,b,c;while(1){cout<<"输入两个数字求最大公约数"<<endl;cin>>a>>b;......
  • NumPy 数组排序、过滤与随机数生成详解
    NumPy数组排序排序数组排序数组意味着将元素按特定顺序排列。顺序可以是数字大小、字母顺序、升序或降序等。NumPy的ndarray对象提供了一个名为sort()的函数,用于对数组进行排序。示例:importnumpyasnparr=np.array([3,2,0,1])print(np.sort(arr))输出:[0......
  • mybatis中进行value的排序无效
    原因是:在MySQL中,如果value是一个字符串,那么在ORDERBY语句中进行降序排序时,MySQL会根据字符串的字典顺序来排序,而不是数值大小。这意味着字符串会按照首字符的ASCII值进行比较,例如,"100"会排在"2"前面,因为在ASCII码中,"1"的值小于"2"的值。解决:可以在mybatis中进行value的类型修改;......
  • [转] 整理一下SQLSERVER的排序规则
    原文链接:https://www.cnblogs.com/JimZhang/archive/2006/04/03/365573.htmlSQLSERVER的排序规则平时使用不是很多,也许不少初学者还比较陌生,但有一个错误大家应是经常碰到:SQLSERVER数据库,在跨库多表连接查询时,若两数据库默认字符集不同,系统就会返回这样的错误:“无法解决eq......
  • 常见的排序算法——归并排序(四)
    本文记述了针对归并排序的3项改进和一份参考实现代码,并在说明了算法的性能后用随机数据进行了验证。◆思想本文实现了《算法(第4版)》书中提到的2项改进和练习题2.2.10。对小规模子数组使用插入排序。因为递归会使小规模问题中方法的调用过于频繁,所以改进对它们的处理方法......
  • 指针练习N个数后移M个位置
    有N个整数,使前面各数顺序向后移动M个位置,最后M个数变成最前面M个数。#include<stdio.h>#include<math.h>voidMove(int*arr,intn,intm);intmain(void){intarr[10]={99,88,77,66,55,44,33,22,11,0};printf("beforemove:\n");for(inti=0;i<10;i++)pr......
  • 指针练习输入十个数
    将最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:1.输入10个数。2.进行处理。3.输出10个数。#include<stdio.h>#include<math.h>voidInput(int*arr);voidChange(int*arr);voidOutput(int*arr);intmain(void){Input(arr);Change(arr);......
  • 3、Oracle 中的过滤、排序
    最近项目要用到Oracle,奈何之前没有使用过,所以在B站上面找了一个学习视频,用于记录学习过程以及自己的思考。视频链接:【尚硅谷】Oracle数据库全套教程,oracle从安装到实战应用如果有侵权,请联系删除,谢谢。更加详细的教程,可以直接观看此链接Oracle教程1、过滤1.1、基本使用方式......
  • Junit5的使用:排序注释
    packagecom.test.api.junit;importorg.junit.jupiter.api.*;importorg.junit.jupiter.params.ParameterizedTest;importorg.junit.jupiter.params.provider.CsvFileSource;importorg.junit.jupiter.params.provider.CsvSource;importorg.junit.jupiter.params.provider.......