Author: 水如烟

曾写过一个How TO:操作字长字符串,现在重新整理,使更方便些.

Public   Class  uString

Private   Sub   New ()
     End Sub

Private   Shared  gEncoding  As  System.Text.Encoding  =  System.Text.Encoding.GetEncoding( " GB2312 " )

Public   Shared   Property  Encoding()  As  System.Text.Encoding
         Get
             Return  gEncoding
         End   Get
         Set ( ByVal  value  As  System.Text.Encoding)
            gEncoding  =  value
         End   Set
     End Property

Public   Shared   Function  Length( ByVal  s  As   String )  As   Integer
         Return  gEncoding.GetByteCount(s)
     End Function

Public   Shared   Function  PadLeft( ByVal  s  As   String ,  ByVal  totalWidth  As   Integer ,  ByVal  paddingChar  As   Char )  As   String
         Return  s.PadLeft(GetValidNum(totalWidth  +  s.Length  -  Length(s)), paddingChar)
     End Function

Public   Shared   Function  PadLeft( ByVal  s  As   String ,  ByVal  totalWidth  As   Integer )  As   String

Return  s.PadLeft(GetValidNum(totalWidth  +  s.Length  -  Length(s)))
     End Function

Public   Shared   Function  PadRight( ByVal  s  As   String ,  ByVal  totalWidth  As   Integer ,  ByVal  paddingChar  As   Char )  As   String
         Return  s.PadRight(GetValidNum(totalWidth  +  s.Length  -  Length(s)), paddingChar)
     End Function

Public   Shared   Function  PadRight( ByVal  s  As   String ,  ByVal  totalWidth  As   Integer )  As   String
         Return  s.PadRight(GetValidNum(totalWidth  +  s.Length  -  Length(s)))
     End Function

Public   Shared   Function  SubString( ByVal  Line  As   String ,  ByVal  Index  As   Integer ,  ByVal   Len   As   Integer )  As   String
         Dim  num  As   Integer   =  Length(Line)
         Return  gEncoding.GetString(gEncoding.GetBytes(Line), Index,  Len )
     End Function

Private   Shared   Function  GetValidNum( ByVal  num  As   Integer )  As   Integer
         If  num  <   0   Then
             Return   0
         Else
             Return  num
         End   If
     End Function

Public   Shared   Function   Format ( ByVal  sformat  As   String ,  ByVal  arg0  As   Object )  As   String
         Return   Format (sformat,  New   Object () {arg0})
     End Function

Public   Shared   Function   Format ( ByVal  sformat  As   String ,  ByVal  arg0  As   Object ,  ByVal  arg1  As   Object )  As   String
         Return   Format (sformat,  New   Object () {arg0, arg1})
     End Function

Public   Shared   Function   Format ( ByVal  sformat  As   String ,  ByVal  arg0  As   Object ,  ByVal  arg1  As   Object ,  ByVal  arg2  As   Object )  As   String
         Return   Format (sformat,  New   Object () {arg0, arg1, arg2})
     End Function

Public   Shared   Function   Format ( ByVal  sformat  As   String ,  ByVal  args  As   Object ())  As   String
         Return  myFormat(sformat, args)
     End Function

Private   Shared   Function  myFormat( ByVal  sformat  As   String ,  ByVal  args  As   Object ())  As   String
         Dim  mysformat  As   String   =  sformat

' 以下匹配字符串,找的是复合格式{index[,alignment][:formatString]}有alignment的完整项{}
         Dim  mPattern  As   String   =   " {(/d+)([/s]*,[/s]*[-]?)(/d+)(.*?)} "
         Dim  mMatchs  As  System.Text.RegularExpressions.MatchCollection
        mMatchs  =  System.Text.RegularExpressions.Regex.Matches(mysformat, mPattern)

' 处理各匹配项,重置各项长度
         For   Each  m  As  System.Text.RegularExpressions.Match  In  mMatchs

Dim  s  As   String   =  m.Groups( 0 ).Value  ' 匹配完整项
             Dim  index  As   Integer   =  Convert.ToInt32(m.Groups( 1 ).Value)  ' 格式索引
             Dim   len   As   Integer   =  Convert.ToInt32(m.Groups( 3 ).Value)  ' 原固定长度

Dim  NowLen  As   Integer   =  AligLen( len , args(index))  ' 现固定长度
             ' 以下重置固定长度
             Dim   replace   As   String   =   " {${1}${2} "   &  NowLen.ToString  &   " ${4}} "
             Dim  Nows  As   String   =  m.Result( replace )
            mysformat  =  mysformat.Replace(s, Nows)
         Next

Return   String .Format(mysformat, args)
     End Function

'混合 字符文本固定长度的重置
     Private   Shared   Function  AligLen( ByVal   len   As   Integer ,  ByVal  arg  As   Object )  As   Integer
         Return   len   -  Length(arg.ToString)  +  arg.ToString.Length
     End Function
End Class

中英文数字混合的复合格式处理相关推荐

  1. 基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词

    基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词.比如能分出这样的词:bb霜.3室.乐phone.touch4.mp3.T恤 第一次写中文分词程序,欢迎拍砖. publicclass MM ...

  2. 基于词典的逆向最大匹配中文分词算法,更好实现中英文数字混合分词

    基于词典的逆向最大匹配中文分词算法,能实现中英文数字混合分词.比如能分出这样的词:bb霜.3室.乐phone.touch4.mp3.T恤.实际分词效果比正向分词效果好 publicclass RMM ...

  3. PHP基于字典的中英文数字混合分词算法RMM简易实现

    <?phpclass Seg {//字典private $dict = [];//加载字典function set_dict($vDict){//词典大写,方便比对foreach ($vDict ...

  4. 关于Textview maxline=1 ellipsize=end 导致中英文数字混合分割错误的问题

    出现错误的现象 我想让textview显示:你好啊430000000呵呵呵呵呵呵呵赫尔呵呵. 由于我设置了maxline=1 ellipsize="end" 在Textview宽度 ...

  5. Java调用Zebra条码打印机打印条码、中英文数字条码混合标签,可自由控制格式和排版

    最近公司要做一个条码标签打印的软件,故特此研究了一下Zebra条码打印机,粗略了解了一下ZPL语言,Download了几个Demo,但始终觉得这些Demo不规范.不全面,问题很多,于是自己抽时间整理了 ...

  6. 图文识别(一):验证码识别---中、英文、数字混合的单行文字识别等

    最近有位大神分享了一个验证码库,试用一下发现非常实用,特做个分享记录. Github地址:GitHub - sml2h3/ddddocr: 带带弟弟 通用验证码识别OCR pypi版 Pip地址:dd ...

  7. 设置数字和字符串的格式(已更新)

    文章目录 1.%占位符 2.string中的Template的subtitute方法 3.format方法 3.1 指定字段 3.2 转换标志 结合格式化类型符 3.3设置格式 3.3.1 附数字的f ...

  8. 【转】ASP.NET中“字母和数字混合的验证码”详解

    "字母跟数字混合的验证码技术": 验证码技术是网站开发过程中比较重要的技术,可以防止非法人员利用注册机或者登陆工具来攻击我们的网站.废话少说,切入正题.主要思路是:引用Using ...

  9. iOS将数字转成货币格式字符串

    将数字转化为货币格式的字符串.每隔三位一个逗号,保留两位小数. - (NSString *)getMoneyStringWithMoneyNumber:(double)money{NSNumberFo ...

最新文章

  1. 第k大 or 第k小 or 中位数
  2. ExecutorCompletionService原理具体解释
  3. 现代的缓存设计方案:Window-TinyLFU
  4. php mysql 大量读取_PHP使用PDO从mysql读取大量数据处理详解
  5. spring-data-jpa Specification构建动态ql
  6. SAP CRM WebClient UI html 格式的 Text 显示逻辑
  7. 腾讯视频app怎么允许腾讯视频访问位置信息
  8. 往mysql数据库中存当前日期_在MySQL数据库中存储日期的最简单方法是什么?
  9. 如何证明CPU的乱序执行(Out-of-order Execution)?
  10. 奇盾安防监控视频恢复案例
  11. 动态修改EasyUI accordion选中面板的标题(title)
  12. MNIST数据集下载
  13. 《Java性能调优实战》00丨开篇词丨怎样才能做好性能调优?2022.03.08-20220329学习完
  14. 【计算方法】牛顿插值法
  15. java swing个人简历小实验
  16. LOCAL_CERTIFICATE作用
  17. Android - 一种相似图片搜索算法的实现
  18. jetson-inferenc显示fatal error: connect_parts.hpp
  19. OpenCV图像拼接和图像融合技术
  20. python过滤敏感词记录

热门文章

  1. 2021年征兵没有高考成绩查询,2021年征兵政策新调整,三种情况无法通过政审,快看看是不是自己...
  2. 阿里云账号快速实名认证新手教程(秒通过)
  3. python图片转手绘_python图片转素描软件
  4. win10共享打印机怎么设置_win10系统设置共享打印机的方法步骤
  5. Boboniu Plays Chess (模拟构造)
  6. 解析.txt文件入库
  7. 一位博士在华为的22年
  8. 批处理使用WinRAR压缩某类型的文件,一个文件压缩成一个压缩包,压缩后名称与原文件同名,压缩后删除原文件
  9. python英文字符频率统计_Python中怎样统计英文文本中的字母频次?
  10. 农村信用社计算机类资料,农村信用社笔试复习资料:计算机知识(3)