总结的5个C#字符串操作方法分享
作者:junjie 时间:2022-08-10 04:02:01
字符串操作是C#中最基本的、最常见的、也是用的最多的,以下我总结了几种常见的方法:
1.把字符串按照分隔符转换成 List
/// <summary>
/// 把字符串按照分隔符转换成 List
/// </summary>
/// <param name="str">源字符串</param>
/// <param name="speater">分隔符</param>
/// <param name="toLower">是否转换为小写</param>
/// <returns></returns>
public static List<string> GetStrArray(string str, char speater, bool toLower)
{
var list = new List<string>();
var ss = str.Split(speater);
foreach (var s in ss)
{
if (string.IsNullOrWhiteSpace(s) || s == speater.ToString(CultureInfo.InvariantCulture)) continue;
var strVal = s;
if (toLower)
{
strVal = s.ToLower();
}
list.Add(strVal);
}
return list;
}
2.把字符串转 按照, 分割 换为数据
/// <summary>
/// 把字符串转 按照, 分割 换为数据
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string[] GetStrArray(string str)
{
return str.Split(new[] { ',', ',' });
}
3.得到数组列表以逗号分隔的字符串
/// <summary>
/// 得到数组列表以逗号分隔的字符串
/// </summary>
/// <param name="list"></param>
/// <param name="speater"></param>
/// <returns></returns>
public static string GetArrayStr(List<string> list, string speater)
{
var sb = new StringBuilder();
for (var i = 0; i < list.Count; i++)
{
if (i == list.Count - 1)
{
sb.Append(list[i]);
}
else
{
sb.Append(list[i]);
sb.Append(speater);
}
}
return sb.ToString();
}
4.得到字符串长度
/// <summary>
/// 得到字符串长度
/// </summary>
/// <param name="inputStr"></param>
/// <returns></returns>
public static int StrLength(string inputStr)
{
var asc = new ASCIIEncoding();
var s = asc.GetBytes(inputStr);
return s.Sum(t => t == 63 ? 2 : 1);
}
5.截取指定长度字符串
/// <summary>
/// 截取指定长度字符串
/// </summary>
/// <param name="inputString"></param>
/// <param name="len"></param>
/// <returns></returns>
public static string CutStr(string inputString, int len)
{
var isShowFix = false;
if (len % 2 == 1)
{
isShowFix = true;
len--;
}
var ascii = new ASCIIEncoding();
var tempLen = 0;
var tempString = "";
var s = ascii.GetBytes(inputString);
for (var i = 0; i < s.Length; i++)
{
tempLen += s[i] == 63 ? 2 : 1;
try
{
tempString += inputString.Substring(i, 1);
}
catch
{
break;
}
if (tempLen > len)
break;
}
var mybyte = Encoding.Default.GetBytes(inputString);
if (isShowFix && mybyte.Length > len)
tempString += "…";
return tempString;
}
暂时就这五种方法了。
标签:C#,字符串,操作
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Spring中BeanFactory FactoryBean和ObjectFactory的三种的区别
2022-02-21 22:43:58
Android ViewPager实现图片轮播效果
2023-03-20 17:00:58
![](https://img.aspxhome.com/file/2023/7/98627_0s.jpg)
为何Java8需要引入新的日期与时间库
2023-12-16 06:02:23
![](https://img.aspxhome.com/file/2023/9/71659_0s.png)
spring boot项目快速构建的全步骤
2023-11-16 21:16:38
![](https://img.aspxhome.com/file/2023/9/110809_0s.png)
详解Android的内存优化--LruCache
2022-07-18 14:28:41
![](https://img.aspxhome.com/file/2023/9/126779_0s.gif)
Android消息机制Handler用法总结
2022-08-10 23:58:56
Springmvc加ajax实现上传文件并页面局部刷新
2023-07-31 09:26:47
![](https://img.aspxhome.com/file/2023/2/85512_0s.png)
Android键盘显示与隐藏代码
2021-06-29 22:15:58
深入理解Java8新特性之接口中的默认方法和静态方法
2023-11-24 01:44:25
![](https://img.aspxhome.com/file/2023/9/59759_0s.png)
Java利用自定义注解、反射实现简单BaseDao实例
2022-09-06 05:29:30
![](https://img.aspxhome.com/file/2023/5/125255_0s.png)
C语言根据协议分割获取字符串单元的实现代码
2023-06-21 08:20:27
![](https://img.aspxhome.com/file/2023/6/87146_0s.png)
java中Executor,ExecutorService,ThreadPoolExecutor详解
2023-10-31 10:50:56
有关于整体刷新和局部刷新frameset窗口
2023-04-21 22:43:40
Java基于分治法实现的快速排序算法示例
2023-12-15 07:39:06
![](https://img.aspxhome.com/file/2023/2/66642_0s.jpg)
JUC系列学习工具类CountDownLatch详解
2023-10-01 12:19:23
![](https://img.aspxhome.com/file/2023/8/66988_0s.png)
java中Statement 与 PreparedStatement接口之间的关系和区别
2023-11-25 03:11:11
![](https://img.aspxhome.com/file/2023/9/60029_0s.png)
Android 将网络的Url资源转换为Drawable资源方式
2023-06-23 03:06:19
C#中方法的详细介绍
2023-08-06 12:31:21
Spring中bean集合注入的方法详解
2022-08-26 07:37:41
![](https://img.aspxhome.com/file/2023/6/77146_0s.png)
C#串口通信工具类的封装
2023-11-23 11:19:54