C# 字符串(string)三个不同的处理方法:IsNullOrEmpty、IsInterned 、IsNullOrWhiteSpace

devtools/2024/10/18 14:15:48/

在C#中,string.IsNullOrEmptystring.IsInternedstring.IsNullOrWhiteSpace 是三个不同的字符串处理方法,它们各自有不同的用途:

1.string.IsNullOrEmpty

这个方法用来检查字符串是否为null或者空字符串("")。如果字符串为null或者长度为0,那么这个方法返回true

string.IsNullOrEmpty(null); // 返回 true
string.IsNullOrEmpty("");   // 返回 true
string.IsNullOrEmpty(" ");  // 返回 false

 2.string.IsInterned

这个方法是用来检查字符串是否已经被字符串池(String Interning)处理过。字符串池是一种内存优化技术,用于存储静态字符串或常量字符串的单一副本,以减少内存使用。如果字符串已经被 interned,那么IsInterned返回那个字符串的 interned 版本;如果没有,则返回原字符串。

string a = "hello";
string b = "hello";
string c = new string('h', 5);
string.d(a) == string.d(b); // 返回 true,因为 a 和 b 指向同一个 interned 对象
string.d(a) == string.d(c); // 返回 false,因为 c 是一个新创建的字符串实例

3.string.IsNullOrWhiteSpace: 

这个方法用来检查字符串是否为null、空字符串或者只包含空白字符(如空格、制表符和换行符)。如果字符串满足这些条件之一,那么这个方法返回true

string.IsNullOrWhiteSpace(null);       // 返回 true
string.IsNullOrWhiteSpace("");        // 返回 true
string.IsNullOrWhiteSpace(" ");        // 返回 true
string.IsNullOrWhiteSpace("\t");      // 返回 true
string.IsNullOrWhiteSpace("\n");      // 返回 true
string.IsNullOrWhiteSpace("hello");    // 返回 false

 总结:

string.IsNullOrEmpty 只检查 null 和空字符串。

string.IsInterned 检查字符串是否已经被 interned。

string.IsNullOrWhiteSpace 检查 null、空字符串和空白字符。


http://www.ppmy.cn/devtools/125382.html

相关文章

harbor 如何做到物理删除镜像 harbor镜像清理脚本

一、背景 相比于nexus,harbor的一大优点是方便及时清理无用的docker镜像。本文就harbor怎么设置清理,梳理一下具体的操作办法。 harbor 版本是 v2.9.0 二、目标 随着我们推送至仓库的镜像越来越多,带来的一个最大运维问题就是存储空间的浪…

《OpenCV计算机视觉》—— 人脸检测

文章目录 一、人脸检测流程介绍二、用于人脸检测的关键方法1.加载分类器(cv2.CascadeClassifier())2.检测图像中的人脸(cv2.CascadeClassifier.detectMultiscale()) 三、代码实现 一、人脸检测流程介绍 下面是一张含有多个人脸的…

高性能缓存方案 —— Caffeine

一、简介 Caffeine是一个高性能的Java缓存库,它提供了本地缓存的功能。 Caffeine和Redis都是内存级别的缓存,为什么要使用在这两缓存作为二级缓存,它们两有什么区别呢? 虽然它们都是内存级别的缓存,但是Redis是需要单独部署的&…

IEC104规约的秘密之九----链路层和应用层

104规约从TCP往上,分成链路层和应用层。 如图,APCI就是链路层,ASDU的就是应用层 我们看到报文都是68打头的,因为应用层报文也要交给链路层发送,链路层增加了开头的6个字节再进行发送。 完全用于链路层的报文每帧都只有…

tiktok x-bougs signature 分析

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 有相关问题请第一时间头像私信联系我删…

Linux与RTOS的区别

一、Linux与RTOS的区别 1.设计目标:Linux关注性能和多任务处理,RTOS追求实时响应和确定性。 2.调度方式:Linux对普通任务使用公平调度;对实时任务使用优先级调度或时间片轮转调度。而RTOS只采用优先级调度。 3.内存管理&#xff1…

Ofcms-(java代码审计学习)

1、背景 根据《java代码审计实战》学习进行记录,java代码审计CMS实战。 2、Ofcms下载 可搜索Ofcms1.1.2版本进行下载。下载连接:ofcms: java 版CMS系统、基于java技术研发的内容管理系统、功能:栏目模板自定义、内容模型自定义、多个站点管…

构建企业级私有仓库

目录 下载软件包地址 为仓库提供加密传输 为仓库建立登陆认证 部署Harbor 对压缩包进行压缩 编辑harbor.yml文件 执行脚本 登录测试 下载软件包地址 https://github.com/goharbor/harbor/releases Harbor 是由vmware公司开源的企业级 Docker Registry 项目。 它提供了…