C#分隔字符串时遭遇空值
在C#中分隔字符串时,按特定字符进行分隔的时候可能会遇到空值,如何我现在传入的是Id的字符串,如:"1501,1502,1503,,1505",以逗号分隔,由于各种原因,导致传入的字符串中有连续的逗号,如果我要利用这一串字符串得到ID数组作为Sql查询的条件,那么我就必须对这种情况进行处理。
实例:
//数组转换成字符串,字符串切割成数组.
string[] array = new[] {"1m2", "", "ww", "mm", "acas,"};//集合初始化.
string arrayString = string.Join(",", array);//把数组按指定的分隔符转换成字符串.
int count = arrayString.Count(s => s == 'a');//计算某个字符在字符串中出现的次数.
string[] shuzu = arrayString.Split(',');//把string字符串按指定的字符切割成数组. //处理各种情况多余的逗号.
string zifu = ",1,2,,3,,,4,5,6,,7,8,,,9,";
string a = Regex.Replace(zifu, ",{2,}", ",");//将连续两个及以上的逗号替换成一个逗号.
string b = Regex.Replace(zifu, "^\\,|(\\,{2,})|\\,$", "");//开头和结尾不能是中英文逗号,不能有连续中英文逗号.
string c = Regex.Replace(zifu, "^\\,|\\,$", "");//不能以逗号开头或结尾.
string d = Regex.Replace(a, "^\\,|\\,$", "");//不能以逗号开头或结尾. string zifu1 = ",1,2,3,";//以逗号开头和结尾.
string e = Regex.Replace(zifu1, "^\\,&\\,$", "");//不能以逗号开头和结尾,正则无效.
string f = Regex.Replace(zifu1, "^\\,|\\,$", "");//不能以逗号开头或结尾,满足. string zifu2 = ",1,2,3";//以逗号开头.
string i = Regex.Replace(zifu2, "^\\,&\\,$", "");//不能以逗号开头和结尾,正则无效.
string j = Regex.Replace(zifu2, "^\\,|\\,$", "");//不能以逗号开头或结尾,满足. string zifu3 = "1,2,3,";//以逗号结尾.
string g = Regex.Replace(zifu3, "^\\,&\\,$", "");//不能以逗号开头和结尾,正则无效.
string h = Regex.Replace(zifu3, "^\\,|\\,$", "");//不能以逗号开头或结尾,满足.
C#分隔字符串时遭遇空值的更多相关文章
- Nodejs使用多个分隔符分隔字符串
在nodejs中当需要使用多个分隔符分隔字符串时,可以使用正则表达式作为split函数的参数,具体使用如下: var str = "111@222#333 444@555# 666 777& ...
- SQL Server 分隔字符串函数实现
在SQL Server中有时候也会遇到字符串进行分隔的需求.平时工作中常常遇到这样的需求,例如:人员数据表和人员爱好数据表,一条人员记录可以多多人员爱好记录,而往往人员和人员爱好在界面展示层要一并提交 ...
- SQL自定义函数split分隔字符串
SQL自定义函数split分隔字符串 一.F_Split:分割字符串拆分为数据表 Create FUNCTION [dbo].[F_Split] ( @SplitString nvarchar(max ...
- 创建COM对象时遭遇 800702e4
SolidEdge st5(x64) SDK /vs2012/win8.1 x64 西夏普创建SEApplication COM对象时遭遇800702e4.翻来覆去的调vs进程的权限,调se进程的权限 ...
- 将数据转化成字符串时:用字符串的链接 还是 StringBuilder
/* 目的:将数据转化成字符串时:用字符串的链接 还是 StringBuilder呢? */ public class Test{ public static void main(String[] a ...
- Python使用split使用多个字符分隔字符串
Python的str类有split方法,但是这个split方法只能根据指定的某个字符分隔字符串,如果要同时指定多个字符来分隔字符串,该怎么办呢? 幸运的是python的re模块中提供的split方法可 ...
- C#反序列化json字符串时,提示:应为来自命名空间“”的元素“root”。。遇到名称为“”、命名空间为“”的“None”。
反序列化调用接口返回的字符串时,出现:应为来自命名空间“”的元素“root”..遇到名称为“”.命名空间为“”的“None”.,导致反序列化数据失败,这种失败并有时候并不会直接提示反序列化失败(抛异常 ...
- java.text.MessageFormat格式化字符串时的小技巧
java.text.MessageFormat格式化字符串时的小技巧 public static void main(String[] args) throws InterruptedExceptio ...
- C++中int转为char 以及int 转为string和string 转int和空格分隔字符串
1.对于int 转为char 直接上代码: 正确做法: void toChar(int b) { char u; ]; _itoa( b, buffer, ); //正确解法一 u = buffer[ ...
随机推荐
- [转帖]nginx location配置详细解释
nginx location配置详细解释 http://outofmemory.cn/code-snippet/742/nginx-location-configuration-xiangxi-exp ...
- Python 解LeetCode:744. Find Smallest Letter Greater Than Target
思路:二分法,时间复杂度o(logn) class Solution(object): def nextGreatestLetter(self, letters, target): "&qu ...
- Centos安装 k8s
### 一. 安装docker 1.安装依赖包```shellsudo yum install -y yum-utils device-mapper-persistent-data lvm2 ``` ...
- 数据校验-hibernate-validator
数据校验 在web开发时,对于请求参数,一般上都需要进行参数合法性校验的,原先的写法时一个个字段一个个去判断,这种方式太不通用了,所以java的JSR 303: Bean Validation规范就是 ...
- 关于MySQL的驱动org.gjt.mm.mysql.Driver
今天看了一个比较老视频使用org.gjt.mm.mysql.Driver来驱动连接,便试了一下看看怎么样,结果一直连不上数据库,后来看了tomcat的后台发现有报这个问题,于是把驱动改成com.mys ...
- luogu2657-Windy数题解--数位DP
题目链接 https://www.luogu.org/problemnew/show/P2657 分析 第一道数位DP题,发现有点意思 DP求\([L,R]\)区间内的XXX个数,很套路地想到前缀和, ...
- mac下自己实现re-sign.jar对apk进行重签名
利用Robotinum对给的apk文件进行自动化测试,在不知道源码的情况下,只有apk文件如何进行自动化测试呢? 首先需要对apk文件进行重签名,并获得该apk文件的包名和程序入口的类名. 最开始网上 ...
- Hibernate入门第一讲——Hibernate框架的快速入门
Hibernate框架的概述 什么是框架? 框架指的是软件的半成品,已经完成了部分功能. JavaEE开发的三层架构 了解框架的基本概念之后,我们就来看看Hibernate框架处于JavaEE开发的经 ...
- 【大数据】Clickhouse基础知识
第1章 ClickHouse概述 1.1 什么是ClickHouse ClickHouse 是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),主要用于在线分析处理查询(OLAP),能 ...
- c# 执行调用Oracle Procedure传参及回传值
////定義參數 //IDataParameter[] parameters = // { ...