String扩展 让你在PadLeft和PadRight时不再受单双字节问题困扰
/// <summary>
/// 按单字节字符串向左填充长度
/// </summary>
/// <param name="input"></param>
/// <param name="length"></param>
/// <param name="paddingChar"></param>
/// <returns></returns>
public static string PadLeft2(this string input, int length, char paddingChar = '\0')
{
return Pad(input, length, paddingChar, true);
}
/// <summary>
/// 按单字节字符串向右填充长度
/// </summary>
/// <param name="input">输入字符串</param>
/// <param name="length">单字节长度</param>
/// <param name="paddingChar">补位字符</param>
/// <returns></returns>
public static string PadRight2(this string input, int length, char paddingChar = '\0')
{
return Pad( input, length, paddingChar, false);
} private static string Pad(string input, int length, char paddingChar,bool isLeft)
{
var isDoubleChar = Regex.IsMatch(paddingChar.ToString(), @"[^\x00-\xff]");
var singleLength = Regex.Replace(input, @"[^\x00-\xff]", "aa").Length;
var num = (length - singleLength) *1.0/(isDoubleChar?:);
var newStr=new string(paddingChar,(int)num);
if (isLeft)
{
input = newStr + input;
}
else
{
input = input + newStr;
}
return input;
}
String扩展 让你在PadLeft和PadRight时不再受单双字节问题困扰的更多相关文章
- JS中的PadLeft、PadRight,位数不足,自动补位,String扩展方法
类似C#中的 PadLeft.PadRight方法 //方法一 function FillZero(p) { return new Array(3 - (p + '').length + 1).joi ...
- C#小方法PadLeft 和 PadRight
1.在 C# 中可以对字符串使用 PadLeft 和 PadRight 进行轻松地补位. PadLeft(int totalWidth, char paddingChar) //在字符串左边用 pad ...
- C#中用PadLeft、PadRight 补足位数
在 C# 中可以对字符串使用 PadLeft 和 PadRight 进行轻松地补位. PadLeft(int totalWidth, char paddingChar) //在字符串左边用 paddi ...
- C# 中 PadLeft和PadRight 的用法
C# 中 PadLeft和PadRight 的用法 在 C# 中可以对字符串使用 PadLeft 和 PadRight 进行轻松地补位. PadLeft(int totalWidth, char pa ...
- PadLeft 和 PadRight
1 PadLeft 即:向已知字符串左边补充字符,使整个字符串到达指定长度 CREATE FUNCTION PadLeft ( ),/*原始字符*/ @TotalLength int,/*总长度*/ ...
- sql函数PadLeft与PadRight代码实例
1.PadLeft函数向已知字符串左边补充字符,使整个字符串到达指定长度 CREATE FUNCTION PadLeft ( ),/*原始字符*/ @TotalLength int,/*总长度*/ ) ...
- 应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) String.prototype.len=function(){return this.replace(/[^\x00-\xff]/g,"aa").length;}
应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) String.prototype.len=function(){return this.replace(/[^\x00-\xff] ...
- java——String、StringBuffer、StringBuilder、包装类、单双引号
String: String是一个特殊的类,被定义为final类型,为字符串常量,同样的字符串在常量池中不能重复. 但是由于使用关键字new创建新的字符串,java会在对中分配新的空间,这样即使字符串 ...
- C#中PadLeft和PadRight小知识点
当我们显示字符串数据时,有时候我们需要考虑数据的排列美观. 比如一些人名和一些编号,我们想让他们整齐对齐显示等. C# String类提供了2种操作方法: String.PadLeft(int tot ...
随机推荐
- 斯坦福2011秋季 iPad and iPhone Application Development 资源
1. MVC and Introduction to Objective-C (September 27, 2011) - HD 2. My First iOS App (September 29, ...
- Markdown 链接
如下,方括号显示说明,圆括号内显示网址, Markdown 会自动把它转成链接 [我是百度](https://www.baidu.com/) [我是淘宝](https://www.taobao.com ...
- 让vim不要自动添加新的注释行
vim里面有一个特性,如果你在一行注释后新加一行,vim会自动在下一行的开始位置添加注释符号.例如对于C/C++来说 //This is a comment line // ...
- 基于IOS上MDM技术相关资料整理及汇总
(转自:http://www.mbaike.net/special/1542.html) 一.MDM相关知识:MDM (Mobile Device Management ),即移动设备管理.在21世纪 ...
- hosts文件配置不生效的解决办法
分析可能的原因并给出相应的解决方案. 第一 种情况,在开启浏览器的时候修改磁盘上的hosts文件,比如说加了原先没有的一句"127.0.0.1 www.360.cn",保存host ...
- HTTP协议(web开发)
HTTP协议 HTTP协议简介 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式.协作式和超媒体信息系统的应用层协议.HTTP是万维网的数 ...
- day_5.25py
作用域
- 现在越来越喜欢用ajax传值了,这样能让网站的体验性很好,今天就总结了一下常用的
这是不用循环的方法 就是传过来的是一位数组 //编辑党建分类 function gk_bj(id){ $.post("{:U('Luser/lei_edlt')}",{id:id} ...
- HDU - 6231 K-th Number (2017CCPC哈尔滨站 二分+尺取法)
Alice are given an array A[1..N] with N numbers. Now Alice want to build an array B by a parameter K ...
- 理解 vm.$nextTick
有同学在看 Vue 官方文档时,对 API 文档中的 Vue.nextTick 和 vm.$nextTick 的作用不太理解. 其实如果看一下深入响应式原理 - vue.js中的有关内容,可能会有所理 ...