当前位置: 首页 > news >正文

C# 判断字符串不等于空的示例

在C#中,要判断一个字符串是否不等于空(即它既不是null也不是空字符串""),方法有如下几种,如下。

方法1

使用逻辑运算符和string.IsNullOrEmpty方法

string myString = "123"; // 假设要检查的字符串  
if (!string.IsNullOrEmpty(myString))  
{  // 字符串不是null,也不是空字符串  
}

方法2

使用逻辑运算符和string.IsNullOrWhiteSpace方法(如果还要检查空白字符串,如只包含空格、制表符或换行符的字符串)

string myString ="123"; // 假设这是要检查的字符串  
if (!string.IsNullOrWhiteSpace(myString))  
{  // 字符串不是null,也不是空字符串或仅包含空白字符  
}

方法3

使用逻辑运算符和直接比较(只检查空字符串,不检查null)

string myString = "123"; // 假设这是要检查的字符串  
if (myString != null && myString != "")  
{  // 字符串不是null,也不是空字符串  
}

方法4

使用C# 8.0及更高版本的空合并运算符(null-conditional operator)和逻辑运算符(仅当需要提供一个默认值时使用)

string myString ="123"; // 假设这是要检查的字符串  
string nonNullOrEmptyString = myString ?? ""; // 如果myString是null,则nonNullOrEmptyString将被设置为""  
if (nonNullOrEmptyString != "")  
{  // 字符串不是空字符串(但可能是null,但在这个例子中已经被转换成了"")  
}

但是,请注意,上面的方法4只检查了空字符串,并没有检查原始字符串是否为null。如果需要同时检查null和空字符串,最好使用第一种或第二种方法。

测试代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;namespace WindowsFormsApplication1
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void strFun1(){string myString ="123"; // 假设要检查的字符串  if (!string.IsNullOrEmpty(myString)){// 字符串不是null,也不是空字符串  MessageBox.Show("字符串不是null,也不是空字符串");}myString = null;if (string.IsNullOrEmpty(myString)){// 字符串不是null,也不是空字符串  MessageBox.Show("字符串是null或是空字符串");}myString = "";if (string.IsNullOrEmpty(myString)){// 字符串不是null,也不是空字符串  MessageBox.Show("字符串是null或是空字符串");}}private void strFun2(){string myString ="123"; // 假设这是要检查的字符串  if (!string.IsNullOrWhiteSpace(myString)){// 字符串不是null,也不是空字符串或仅包含空白字符  MessageBox.Show("字符串不是null,也不是空字符串或仅包含空白字符");}myString = null;if (string.IsNullOrWhiteSpace(myString)){// 字符串不是null,也不是空字符串  MessageBox.Show("字符串是null或是空字符串或仅包含空白字符");}myString = "";if (string.IsNullOrWhiteSpace(myString)){// 字符串不是null,也不是空字符串  MessageBox.Show("字符串是null或是空字符串或仅包含空白字符");}myString = "  ";if (string.IsNullOrWhiteSpace(myString)){// 字符串不是null,也不是空字符串  MessageBox.Show("字符串是null或是空字符串或仅包含空白字符");}}private void strFun3(){string myString = "123"; // 假设要检查的字符串  if (myString != null && myString != ""){// 字符串不是null,也不是空字符串  MessageBox.Show("字符串不是null,也不是空字符串"); }myString = null;if (myString == null ){// 字符串是null MessageBox.Show("字符串是null");}myString = "";if (myString == ""){// 字符串是空字符串  MessageBox.Show("字符串是空字符串");}}private void strFun4(){string myString = "123"; // 假设要检查的字符串  string nonNullOrEmptyString = myString ?? ""; // 如果myString是null,则nonNullOrEmptyString将被设置为""  if (nonNullOrEmptyString != null && nonNullOrEmptyString != ""){// 字符串不是null,也不是空字符串  MessageBox.Show("字符串不是null,也不是空字符串");}if (nonNullOrEmptyString == null){// 字符串是null MessageBox.Show("字符串是null");}if (nonNullOrEmptyString == ""){// 字符串是空字符串  MessageBox.Show("字符串是空字符串");}}private void button1_Click(object sender, EventArgs e){strFun1();}private void button2_Click(object sender, EventArgs e){strFun2();}private void button3_Click(object sender, EventArgs e){strFun3();}private void button4_Click(object sender, EventArgs e){strFun4();}}
}

在这里插入图片描述
在这里插入图片描述

相关文章:

  • AdminController
  • 【面试笔记】单片机软件工程师,工业控制方向(储能)
  • Windows下载安装RabbitMQ客户端(2024最新篇)
  • 【CMake系列】09-cmake install 一般文件 文件夹 源代码
  • 必应bing国内广告怎样开户投放呢?
  • dotenv 配置踩坑-显示undefined
  • gitlab-jh的docker容器自动退出/gitlab镜像版本/升级问题
  • 安卓手机APP开发_____通过设备管理政策增强安全性
  • python中的预编译正则表达式
  • 03--nginx架构实战
  • Matlab解决矩阵微分方程建模(代码开源)
  • elasticsearch安装与使用(2)-基于term匹配的简单搜索引擎搭建
  • debian常用命令
  • 一键开启:盲盒小程序里的梦幻奇遇
  • The 18th Northeast Collegiate Programming Contest(5/9/13)
  • [译] React v16.8: 含有Hooks的版本
  • 【mysql】环境安装、服务启动、密码设置
  • 【笔记】你不知道的JS读书笔记——Promise
  • css选择器
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • Java知识点总结(JavaIO-打印流)
  • JS基础之数据类型、对象、原型、原型链、继承
  • Leetcode 27 Remove Element
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • mongo索引构建
  • mysql innodb 索引使用指南
  • Mysql5.6主从复制
  • Rancher如何对接Ceph-RBD块存储
  • vue-cli在webpack的配置文件探究
  • windows-nginx-https-本地配置
  • 机器学习学习笔记一
  • 基于Android乐音识别(2)
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 排序算法之--选择排序
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 深度学习中的信息论知识详解
  • 十年未变!安全,谁之责?(下)
  • 1.Ext JS 建立web开发工程
  • 交换综合实验一
  • ​​​​​​​​​​​​​​Γ函数
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • !!Dom4j 学习笔记
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (1)(1.13) SiK无线电高级配置(六)
  • (1)无线电失控保护(二)
  • (C++17) std算法之执行策略 execution
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)