中英文数字混合的复合格式处理
Author: 水如烟
曾写过一个How TO:操作字长字符串,现在重新整理,使更方便些.
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
中英文数字混合的复合格式处理相关推荐
- 基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词.比如能分出这样的词:bb霜.3室.乐phone.touch4.mp3.T恤 第一次写中文分词程序,欢迎拍砖. publicclass MM ...
- 基于词典的逆向最大匹配中文分词算法,更好实现中英文数字混合分词
基于词典的逆向最大匹配中文分词算法,能实现中英文数字混合分词.比如能分出这样的词:bb霜.3室.乐phone.touch4.mp3.T恤.实际分词效果比正向分词效果好 publicclass RMM ...
- PHP基于字典的中英文数字混合分词算法RMM简易实现
<?phpclass Seg {//字典private $dict = [];//加载字典function set_dict($vDict){//词典大写,方便比对foreach ($vDict ...
- 关于Textview maxline=1 ellipsize=end 导致中英文数字混合分割错误的问题
出现错误的现象 我想让textview显示:你好啊430000000呵呵呵呵呵呵呵赫尔呵呵. 由于我设置了maxline=1 ellipsize="end" 在Textview宽度 ...
- Java调用Zebra条码打印机打印条码、中英文数字条码混合标签,可自由控制格式和排版
最近公司要做一个条码标签打印的软件,故特此研究了一下Zebra条码打印机,粗略了解了一下ZPL语言,Download了几个Demo,但始终觉得这些Demo不规范.不全面,问题很多,于是自己抽时间整理了 ...
- 图文识别(一):验证码识别---中、英文、数字混合的单行文字识别等
最近有位大神分享了一个验证码库,试用一下发现非常实用,特做个分享记录. Github地址:GitHub - sml2h3/ddddocr: 带带弟弟 通用验证码识别OCR pypi版 Pip地址:dd ...
- 设置数字和字符串的格式(已更新)
文章目录 1.%占位符 2.string中的Template的subtitute方法 3.format方法 3.1 指定字段 3.2 转换标志 结合格式化类型符 3.3设置格式 3.3.1 附数字的f ...
- 【转】ASP.NET中“字母和数字混合的验证码”详解
"字母跟数字混合的验证码技术": 验证码技术是网站开发过程中比较重要的技术,可以防止非法人员利用注册机或者登陆工具来攻击我们的网站.废话少说,切入正题.主要思路是:引用Using ...
- iOS将数字转成货币格式字符串
将数字转化为货币格式的字符串.每隔三位一个逗号,保留两位小数. - (NSString *)getMoneyStringWithMoneyNumber:(double)money{NSNumberFo ...
最新文章
- 第k大 or 第k小 or 中位数
- ExecutorCompletionService原理具体解释
- 现代的缓存设计方案:Window-TinyLFU
- php mysql 大量读取_PHP使用PDO从mysql读取大量数据处理详解
- spring-data-jpa Specification构建动态ql
- SAP CRM WebClient UI html 格式的 Text 显示逻辑
- 腾讯视频app怎么允许腾讯视频访问位置信息
- 往mysql数据库中存当前日期_在MySQL数据库中存储日期的最简单方法是什么?
- 如何证明CPU的乱序执行(Out-of-order Execution)?
- 奇盾安防监控视频恢复案例
- 动态修改EasyUI accordion选中面板的标题(title)
- MNIST数据集下载
- 《Java性能调优实战》00丨开篇词丨怎样才能做好性能调优?2022.03.08-20220329学习完
- 【计算方法】牛顿插值法
- java swing个人简历小实验
- LOCAL_CERTIFICATE作用
- Android - 一种相似图片搜索算法的实现
- jetson-inferenc显示fatal error: connect_parts.hpp
- OpenCV图像拼接和图像融合技术
- python过滤敏感词记录
热门文章
- 2021年征兵没有高考成绩查询,2021年征兵政策新调整,三种情况无法通过政审,快看看是不是自己...
- 阿里云账号快速实名认证新手教程(秒通过)
- python图片转手绘_python图片转素描软件
- win10共享打印机怎么设置_win10系统设置共享打印机的方法步骤
- Boboniu Plays Chess (模拟构造)
- 解析.txt文件入库
- 一位博士在华为的22年
- 批处理使用WinRAR压缩某类型的文件,一个文件压缩成一个压缩包,压缩后名称与原文件同名,压缩后删除原文件
- python英文字符频率统计_Python中怎样统计英文文本中的字母频次?
- 农村信用社计算机类资料,农村信用社笔试复习资料:计算机知识(3)