首页 > 其他分享 >delphi按键值对重组字符串

delphi按键值对重组字符串

时间:2024-02-20 17:13:58浏览次数:34  
标签:sKey TStringList delphi 按键 List Add mapString tempString 字符串

问题背景:有一组基金代码串,原逻辑按基金代码单个调整为按父子基金代码组作为条件获取查询结果

解决原理:采用TStringList类哈希表操作方式重组字符串

List := TStringList.Create;

List.Add('aaa=111');
List.Add('bbb=222');
List.Add('ccc=333');
List.Add('ddd=444');
ShowMessage(List.Names[1]);  //bbb
ShowMessage(List.ValueFromIndex[1]);  //222
ShowMessage(List.Values['bbb']);  //222

算法:

mapString := TStringList.Create;
tempString := TStringList.Create;
tempString.Delimiter:=',' ;
tempString.DelimitedText:= str;
for i := 0 to tempString.Count-1 do
begin
if mapString.Values[tempString[i]] = '' then
begin
sKey := tempString[i]+'='+tempString[i];
mapString.Add(sKey);
end
else
begin
sKey := tempString[i]+'='+mapString.Values[tempString[i]]+','+tempString[i];
mapString.Delete(mapString.IndexOfName(tempString[i]));
mapString.Add(sKey);
end;
end;

 

标签:sKey,TStringList,delphi,按键,List,Add,mapString,tempString,字符串
From: https://www.cnblogs.com/lighting-bug/p/18023565

相关文章

  • 十六进制字符串,转化为十六进制数据并write 写出去
    如果你想使用write函数以十六进制方式发送数据,你需要将十六进制数据转换为字节,并将字节作为参数传递给write函数。下面是一个示例程序,演示如何将十六进制字符串转换为字节,并使用write函数发送数据:#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<st......
  • redis自学(1) 动态字符串SDS
      字符串是redis最常见的数据结构,但redis并没有直接使用C语言的字符串,是因为C语言本身其实是没有字符串的,所谓的字符串其实是字符数组(Java语言中的字符串是一个对象),所以C语言的字符串有很多问题:①获取字符串长度需要通过运算C语言的字符串数组都是以’\0’结尾,这是一个字符......
  • 2024-02-20 随机生成30位字符串
    functiongenerateRandomString(){letspecialChars="`~!@#$%^&*-+=_|{}[]:;'<>,.?/";letlowercaseLetters='abcdefghijklmnopqrstuvwxyz';letuppercaseLetters='ABCDEFGHIJKLMNOPQRSTUVWXYZ';let......
  • chapter4-字符串
    记录字符串常考的4种操作:遍历、加密、统计、匹配。1.字符串介绍C++提供了字符串(string)这种基本数据类型,它可以很方便地对字符串进行各种操作。使用需要添加头文件#include<string>。1.1字符串的构造字符串的构造包括定义和初始化两个部分,定义一个字符串的方式和定义其他基本......
  • 统计字符串中出现次数最少的字符
    functiongetMinStr(str){constcountObj={}for(letiofstr){Reflect.has(countObj,i)?countObj[i]++:countObj[i]=1}constresult=Object.entries(countObj).reduce((pre,cur)=>cur[1]>pre[1]?cur:pre)ret......
  • Map判空 、空字符串、空key值等各种判断方法
    一、Map本身的判空1.1“==null”不能判断Map的本身是否为null  1.2map.isEmpty()判断为空当map没有向里面put数据的时候,可以利用map自带得方法来进行判断该Map是否里面有值 1.3“==null”与“isEmpty()”最大的区别如果map是一个null存在,那么在利用isEmpty()来判空将......
  • delphi base64的“坑”
    delphibase64的“坑”使用Delphi原生的Base64编码(System.NetEncoding单元),编码后的字符串每隔76个字符会增加一个回车换行(#13#10),这样就导致和其他语言对接的时候出现问题,特别是Base64以后再进行签名,例如MD5签名,就会导致签名不一致。回车换行不容易看到,所以查找问题比较困难。......
  • java中file转字符串,字符串输出为文件
     读取文件转为字符串: //输入文件File类型,输出字符串 publicstaticStringfileToString(Filefile){ InputStreamis=null; ByteArrayOutputStreambos=newByteArrayOutputStream(); byte[]buffer=newbyte[1024]; inttemp=-1; try{ is=newFi......
  • linux字符串处理与赋值
    赋值使用$()例如:a=$(echo"helloworld")将命令echo“helloworld”的输出赋值给变量a字符串切片使用cut[选项]...[文件]...-b:以字节为单位进行分割;-c: 以字符为单位进行分割;-d分隔符: 使用指定分隔符代替制表符作为划分符,默认使用制表符;-f:选择指定的段,如果选......
  • 2-Redis十大类型之字符串String
    1.RedisString类型注意:redis中的string类型最大value为512MB1.1同时设置多个键值对MSETk1v1k2v2k3v3...1.2同时获取多个键值MGETk1k2k3...1.3获取指定区间范围内的值GETRANGEkstartend:类似于字符串截取SETRANGEkoffsetvalue:类似于从字符串的指......