欢迎访问 外汇EA下载与MT4/MT5自动交易资源 - 聚合外汇EA、黄金EA、量化交易工具与自动化交易实战内容。
登录 注册

字符串操作函数 - MetaTrader 5 库

author emer | 704 人阅读 | 0 人评论 |

有用的字符串操作函数的集合

库中的所有函数都将返回源字符串的修改后的副本。

源字符串未被修改(即不可变)。

//+------------------------------------------------------------------+
//|                                                 StringUtils_演示 |
//|                                        版权所有 © 2018,阿姆·阿里 |
//|                             https://www.mql5.com/en/users/amrali |
//+------------------------------------------------------------------+
#财产版权 “版权所有 © 2018,阿姆·阿里”
#财产关联      “https://www.mql5.com/en/users/amrali”
#财产版本  “1.800”
#财产描述 “字符串操作函数的集合。”

#包括//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
#定义打印(A) 打印助手(#一个,(一个))//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
模板<类型名>空白打印助手(细绳_一个,常量TA)
  {
  如果类型名(T)==“细绳”)
      打印(_A+”=“,“\””+ (细绳)A+“\””);
  别的      打印(_A+”=“, (细绳)一个);
  }//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
空白 启动时()
  {
  /**
    * 所有函数都返回输入字符串的修改后的副本。
    * 源字符串未被修改(即不可变)。
    */   打印(字符串追加如果丢失(“目录”,“\\”) );
   打印(字符串追加如果丢失(“目录”,“\\”) );
   打印(字符串字符(“苹果”,4) );
   打印(字符串字符代码(“苹果”,4) );
  细绳部分[];
   打印(字符串块(“1234567890”,3, 部分) );
  阵列打印(部分);
   打印( StringChunkRight(“1234567890”,3, 部分) );
  阵列打印(部分);
   PRINT( 字符串包含(“生活是美好的”,“是”) );
   打印(字符串计数匹配(“蓝色先生有蓝色的房子和蓝色的汽车”,“蓝色的”) );
   打印(字符串结束(“生活是美好的”,“好的”) );
   打印(字符串结束(“生活是美好的”,“是”,7) );
   打印(字符串生成随机数(12) );
   打印(字符串索引(“早晨”,“n”) );
   PRINT( 字符串插入(“012345”,“xxx”,3) );
   PRINT( 字符串为空或空(无效的) );
   PRINT( 字符串为空或空(””) );
   PRINT( 字符串是数字(“12345”) );
   PRINT( 字符串是数字(“3.142”) );
   PRINT( 字符串连接(“-”,“爪哇”,“是”,“凉爽的”) );
   打印(字符串最后索引(“早晨”,“n”) );
   打印(字符串左(“直升机”) );
   打印(字符串左(“车辆”,2) );
   打印(字符串左(“车”,5) );
   打印(字符串键盘(“MQL5 太棒了”,21,'*') );
   打印(字符串PadEnd(“美元”,5) );
   打印(字符串PadEnd(“1.3”,5,‘0’) );
   打印( 字符串PadStart(“美元”,5) );
   打印( 字符串PadStart(“123”,5,‘0’) );
   PRINT( StringPrependIfMissing(“域名.com”,“万维网。”) );
   PRINT( StringPrependIfMissing(“www.domain.com”,“万维网。”) );
   打印(字符串删除(“蓝色先生有蓝色的房子和蓝色的汽车”,“蓝色的 ”) );
   PRINT( 字符串删除结束(“www.domain.com”,“.com”) );
   PRINT( 字符串删除开始(“www.domain.com”,“万维网。”) );
   PRINT( 字符串删除开始(“域名.com”,“万维网。”) );
   PRINT( 字符串重复(“*”,5) );
   PRINT( 字符串重复('*',5) );
   PRINT( 字符串替换2(“蓝色先生有蓝色的房子和蓝色的汽车”,“蓝色的”,“红色的”) );
   PRINT( 字符串替换之间(foo,,”,“酒吧”) );
   PRINT( 字符串反转(“012345”) );
   打印(字符串右(“直升机”) );
   打印(字符串右(“车辆”,2) );
   打印(字符串右(“车”,5) );
   打印(字符串随机播放(“012345”) );
   打印(字符串分割“_生活就是_美好_”,“_”, 部分) );
  阵列打印(部分);
   打印(字符串分割修剪(“_生活就是_美好_”,“_”, 部分) );
  阵列打印(部分);
   PRINT( 字符串开始(“生活是美好的”,“生活”) );
   PRINT( 字符串开始(“生活是美好的”,“是”,5) );
   PRINT( 字符串SubstrAfter(“ABCBA”,“b”) );
   PRINT( StringSubstrAfterLast(“ABCBA”,“b”) );
   PRINT( 字符串SubstrBefore(“ABCBA”,“b”) );
   PRINT( StringSubstrBeforeLast(“ABCBA”,“b”) );
   PRINT( StringSubstrBetween(foo,,”) );
   PRINT( 字符串转小写(“MetaTrader 5”) );
   PRINT( 字符串转大写(“MetaTrader 5”) );
   打印(字符串修剪(“  你好世界!  ”) );
   打印(字符串修剪结束(“  你好世界!  ”) );
   打印(字符串修剪开始(“  你好世界!  ”) );
   打印( DQuoteStr(MQL 信息字符串MQL_程序_路径)));
   打印(StrHashCode(“https://twitter.com/”) );
   打印(StrHashCode(“哎呀!”) );
  常量 长的魔法数 = ((长的) StrHashCode(“我的专家姓名”) <<31) + StrHashCode(_象征);
   打印(魔法数字);
   打印(Base64编码(“https://twitter.com/”) );
   打印(Base64解码(“aHR0chHM6Ly90d2l0dGVyLmNvbS8 =”) );
   打印(Base64编码(“哎呀!”) );
   打印(Base64解码(“0J/RgNC40LLQtdGCINC80LjRgCE=”) );
  乌查尔字节[];
   打印( UTF8GetBytes(“MQL5”, 字节) );
  阵列打印(字节);
   打印(UTF8GetString(字节));
  超短字符[];
   打印( UnicodeGetBytes(“MQL5”, 字符) );
  阵列打印(字符);
   PRINT( UnicodeGetString(chars) );
  }//+------------------------------------------------------------------+

// 预期输出:
/*
  StringAppendIfMissing(dir,\) = "dir\"
  StringAppendIfMissing(dir\,\) = "dir\"
  StringCharAt(苹果,4) = "e"
  StringCharCodeAt(苹果,4) = 101
  StringChunk(1234567890,3,部分) = 4
  “123” “456” “789” “0”
  StringChunkRight(1234567890,3,部分) = 4
  “890” “567” “234” “1”
  StringContains(life_is_good,is) = true
  StringCountMatches(蓝色先生有蓝色的房子和蓝色的汽车,蓝色) = 2
  StringEndsWith(life_is_good,好) = true
  StringEndsWith(life_is_good,is,7) = true
  StringGenerateRandom(12) = "9VPP7jZcShNz"
  StringIndexOf(早上,n) = 3
  字符串插入(012345,xxx,3) = "012xxx345"
  StringIsNullOrEmpty(NULL) = true
  StringIsNullOrEmpty() = true
  字符串IsNumeric(12345) = true
  字符串IsNumeric(3.142) = true
  StringJoin(-,Java,is,cool) = "Java 很酷"
  StringLastIndexOf(上午,n) = 5
  StringLeft(直升机) = "h"
  StringLeft(车辆,2) = "ve"
  StringLeft(汽车,5) = "汽车"
  StringPad(MQL5 很棒,21,'*') = "***MQL5 很棒***"
  StringPadEnd(USD,5) = "美元  "
  StringPadEnd(1.3,5,'0') = "1.300"
  StringPadStart(USD,5) = "  美元"
  StringPadStart(123,5,'0') = "00123"
  StringPrependIfMissing(domain.com,www.) = "www.domain.com"
  StringPrependIfMissing(www.domain.com,www.) = "www.domain.com"
  StringRemove(Mr Blue 有一座蓝色的房子和一辆蓝色的汽车,blue ) = "Mr Blue 有一座房子和一辆汽车"
  StringRemoveEnd(www.domain.com,.com) = "www.domain"
  StringRemoveStart(www.domain.com,www.) = "domain.com"
  StringRemoveStart(domain.com,www.) = "domain.com"
  字符串重复(*,5) = "*****"
  StringRepeat('*',5) = "*****"
  StringReplace2(蓝色先生有蓝色房子和蓝色汽车,blue,red) = "蓝色先生有红色房子和红色汽车"
  StringReplaceBetween(foo,,,bar) = "bar"
  字符串反转(012345)=“543210”
  StringRight(直升机) = "r"
  StringRight(车辆,2) = "le"
  StringRight(汽车,5) = "汽车"
  StringShuffle(012345) = "145230"
  StringSplit(_life_is_good_,_,零件) = 5
  “”     “生活”“是”  “美好”“”
  StringSplitTrim(_life_is_good_,_,零件) = 3
  “生活”“是”“美好”
  StringStartsWith(life_is_good,life) = true
  StringStartsWith(life_is_good,is,5) = true
  StringSubstrAfter(abcba,b) = "cba"
  StringSubstrAfterLast(abcba,b) = "a"
  StringSubstrBefore(abcba,b) = "a"
  StringSubstrBeforeLast(abcba,b) = "abc"
  StringSubstrBetween(foo,,) = "foo"
  StringToLowerCase(MetaTrader 5) = "metatrader 5"
  StringToUpperCase(MetaTrader 5) = "METATRADER 5"
  StringTrim(  你好世界!  ) = "你好世界!"
  StringTrimEnd(  你好世界!  ) = "  你好世界!"
  StringTrimStart(  你好世界!  ) = "你好世界!  "
  DQuoteStr(MQLInfoString(MQL_PROGRAM_PATH)) = ""C:\Program Files\MetaTrader 5\MQL5\Scripts\StringUtils_demo.ex5""
  StrHashCode(https://twitter.com/) = 2363652379
  StrHashCode(Привет мир!) = 3271322339
  魔法号码 = 9094825662509768225
  Base64Encode(https://twitter.com/)=“aHR0cHM6Ly90d2l0dGVyLmNvbS8=”
  Base64Decode(aHR0cHM6Ly90d2l0dGVyLmNvbS8=) = "https://twitter.com/"
  Base64Encode(Привет мир!) = "0J/RgNC40LLQtdGCINC80LjRgCE="  Base64Decode(0J/RgNC40LLQtdGCINC80LjRgCE=) = "Привет мир!"
  UTF8GetBytes(MQL5,字节) = 4
  77 81 76 53
  UTF8GetString(字节) = "MQL5"
  UnicodeGetBytes(MQL5,字符) = 4
  77 81 76 53
  UnicodeGetString(chars) = "MQL5"
*/





附件下载

📎 stringutils.mqh (85.33 KB)

📎 stringutils_demo.mq5 (16.91 KB)

Source: MQL5 #35395

🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录