Bash字符串处理(与Java对照) - 6.判断字符串是否为空(不为空)

Bash字符串处理(与Java对照) - 6.判断字符串是否为空(不为空)

In Java

判断是否为null

是null

if (s == null) {

    // do something

}

 

不是null

if (s != null) {

    // do something

}

 

判断是否null或空串

是null或者空串:方法一

if (s == null || s.length() == 0) {

    // do something

}

 

是null或者空串:方法二

if (s == null || s.isEmpty()) {

    // do something

}

 

是null或者空串:方法三

import org.apache.commons.lang.StringUtils;

if (StringUtils.isEmpty(s)) {

    // do something

}

 

不是null也不是空串:方法一

if (s != null && s.length() != 0) {

    // do something

}

 

不是null也不是空串:方法二

if (s != null && s.isEmpty()) {

    // do something

}

 

不是null也不是空串:方法三

import org.apache.commons.lang.StringUtils;

if (StringUtils.isNotEmpty(s)) {

    // do something

}

 

JavaDoc String.isEmpty 写道
boolean isEmpty()
Returns true if, and only if, length() is 0.
 
org.apache.commons.lang.StringUtils 写道

isEmpty

public static boolean isEmpty(String str)

    Checks if a String is empty ("") or null.

     StringUtils.isEmpty(null)      = true
     StringUtils.isEmpty("")        = true
     StringUtils.isEmpty(" ")       = false
     StringUtils.isEmpty("bob")     = false
     StringUtils.isEmpty("  bob  ") = false

    NOTE: This method changed in Lang version 2.0. It no longer trims the String. That functionality is available in isBlank().

    Parameters:
        str - the String to check, may be null
    Returns:
        true if the String is empty or null


isNotEmpty

public static boolean isNotEmpty(String str)

    Checks if a String is not empty ("") and not null.

     StringUtils.isNotEmpty(null)      = false
     StringUtils.isNotEmpty("")        = false
     StringUtils.isNotEmpty(" ")       = true
     StringUtils.isNotEmpty("bob")     = true
     StringUtils.isNotEmpty("  bob  ") = true

    Parameters:
        str - the String to check, may be null
    Returns:

        true if the String is not empty and not null
 

 

判断是否null、空串或空白串

是null或空串或空白串:方法一

if (s == null || s.length() == 0 || s.trim().length() == 0) {

    // do something

}

 

是null或空串或空白串:方法二

if (s == null || s.matches("\\s*")) {

    // do something

}

 

是null或空串或空白串:方法三

import org.apache.commons.lang.StringUtils;

if (StringUtils.isBlank(s)) {

    // do something

}

 

不是null也不是空串和空白串:方法一

if (s != null && s.length() != 0 && s.trim().length() != 0) {

    // do something

}

 

不是null也不是空串和空白串:方法二

if (s != null && !s.matches("\\s*")) {

    // do something

}

 

不是null也不是空串和空白串:方法三

import org.apache.commons.lang.StringUtils;

if (StringUtils.isNotBlank(s)) {

    // do something

}

 

org.apache.commons.lang.StringUtils 写道

isBlank

public static boolean isBlank(String str)

    Checks if a String is whitespace, empty ("") or null.

     StringUtils.isBlank(null)      = true
     StringUtils.isBlank("")        = true
     StringUtils.isBlank(" ")       = true
     StringUtils.isBlank("bob")     = false
     StringUtils.isBlank("  bob  ") = false

    Parameters:
        str - the String to check, may be null
    Returns:
        true if the String is null, empty or whitespace


isNotBlank

public static boolean isNotBlank(String str)

    Checks if a String is not empty (""), not null and not whitespace only.

     StringUtils.isNotBlank(null)      = false
     StringUtils.isNotBlank("")        = false
     StringUtils.isNotBlank(" ")       = false
     StringUtils.isNotBlank("bob")     = true
     StringUtils.isNotBlank("  bob  ") = true

    Parameters:
        str - the String to check, may be null
    Returns:
        true if the String is not empty and not null and not whitespace

 

 

In Bash

判断是否空串(或者未定义)

格式1:test -z "$STR"
格式2:[ -z "$STR" ]

注:test是[]的同义词。注意加上引号,否则有可能报错。

格式3:test "$STR" == ""

格式4:[ "$STR" == "" ]

格式5:test "$STR" = ""

格式6:[ "$STR" = "" ]

注:==等同于=。

格式7:[[ "$STR" = "" ]]

格式8:[[ $STR = "" ]]

格式9:[[ "$STR" == "" ]]

格式10:[[ $STR == "" ]]

格式11:[[ ! $STR ]]

注:[[是Bash关键字,其中的变量引用不需要加双引号。

 

[root@jfht ~]# if test -z "$STR"; then echo "STR is null or empty"; fi
STR is null or empty
[root@jfht ~]# if [ -z "$STR" ]; then echo "STR is null or empty"; fi    
STR is null or empty
[root@jfht ~]# if test "$STR" == ""; then echo "STR is null or empty"; fi      
STR is null or empty
[root@jfht ~]# if [ "$STR" == "" ]; then echo "STR is null or empty"; fi     
STR is null or empty
[root@jfht ~]# if test "$STR" = ""; then echo "STR is null or empty"; fi     
STR is null or empty
[root@jfht ~]# if [ "$STR" = "" ]; then echo "STR is null or empty"; fi    
STR is null or empty
[root@jfht ~]# if [[ "$STR" = "" ]]; then echo "STR is null or empty"; fi
STR is null or empty
[root@jfht ~]# if [[ $STR = "" ]]; then echo "STR is null or empty"; fi 
STR is null or empty
[root@jfht ~]# if [[ ! $STR ]]; then echo "STR is null or empty"; fi    
STR is null or empty
[root@jfht ~]#

 

判断是否非空串

格式1:test "$STR"

格式2:[ "$STR" ]
格式3:test -n "$STR"

格式4:[ -n "$STR" ]

格式5:test ! -z "$STR"

格式6:[ ! -z "$STR" ]

格式7:test "$STR" != ""

格式8:[ "$STR" != "" ]

格式9:[[ "$STR" ]]

格式10:[[ $STR ]]

 

man test 写道
-n STRING
   the length of STRING is nonzero

STRING
   equivalent to -n STRING

-z STRING
    the length of STRING is zero
 

 

判断变量是否已定义(声明)

格式1:if declare -p VAR; then do_something; fi

格式2:declare -p VAR && do_something

在Bash中typeset命令等同于declare命令。

格式3:if [ "${VAR+YES}" ]; then do_something; fi

格式4:[ "${VAR+YES}" ] && do_something

${VAR+YES}表示如果VAR没有定义则返回YES,否则返回空

 

[root@jfht ~]# if declare -p VAR; then echo "VAR defined"; fi
-bash: declare: VAR: not found
[root@jfht ~]# declare -p VAR && echo "VAR defined"
-bash: declare: VAR: not found
[root@jfht ~]# if [ "${VAR+YES}" ]; then echo "VAR defined"; fi
[root@jfht ~]# [ "${VAR+YES}" ] &&echo "VAR defined"
[root@jfht ~]#
[root@jfht ~]# VAR=
[root@jfht ~]# if declare -p VAR; then echo "VAR defined"; fi 
declare -- VAR=""
VAR defined
[root@jfht ~]# declare -p VAR && echo "VAR defined"            
declare -- VAR=""
VAR defined
[root@jfht ~]# if [ "${VAR+YES}" ]; then echo "VAR defined"; fi
VAR defined
[root@jfht ~]# [ "${VAR+YES}" ] &&echo "VAR defined"
VAR defined
[root@jfht ~]#

 

判断变量没有定义(声明)

格式1:if [ ! "${VAR+YES}" ]; then do_something; fi

格式2:[ ! "${VAR+YES}" ] && do_something

 

 

本文链接:http://codingstandards.iteye.com/blog/1171360   (转载请注明出处)

返回目录:Java程序员的Bash实用指南系列之字符串处理(目录) 

上节内容:Bash字符串处理(与Java对照) - 5.字符串输入(读取字符串)

下节内容:Bash字符串处理(与Java对照) - 7.字符串与默认值

 

 

基于CST的PCB通孔三维建模实例 本文简明扼要地描述了如何利用CST的参数化脚本快速生成PCB的通孔三维模型,非常适合于进行快速精准的PCB参数分析。 阅读详情

相关推荐

机器人控制入门

机器人控制入门 对于工科领域来说,脱离实践的学习都是肤浅的,对于控制这种强调经验的技术更是如此。如果去问一个程序员怎么学习一块技术,他必然让你去多编程。机器人领域也是。如果想把基本功打扎实,那么实践更是必不可少了。 机器人控制有三个元素:控制器(算法),执行器(电机),传感器; 控制的本质就是将规划系统的指令作为输入信息,将传感器探测得到的状态信息和导航系统的定位

彼岸花 1万+

bash 空值判断

1. 直接判断 name= if [ $name ];then echo "not null" else echo "is null" else> fi # is null 2. 转换成字符串 name= if [ "$name"="" ];then echo "is null" else echo "not null" fi #is null 3. -n:不等于 name= if [ ! -n "$name" ];then echo "is null" else echo "no..

xiaoQL520的博客 5074

STM32H7 FOC控制时序优化与PWM中点更新策略

在永磁同步电机(PMSM)的磁场定向控制(FOC)系统中,控制时序精度是决定电流环带宽、观测器收敛性与动态响应能力的基础要素。其核心在于理解PWM生成、ADC采样与控制计算三者之间的硬件级时间耦合关系——尤其在中心对齐模式下,标准更新机制引入的半周期延迟会破坏电压-电流瞬时映射,导致滑模观测器失配与高频相位滞后。通过将PWM更新事件绑定至重复计数器(RCR)清零点,可实现控制指令在开关周期中点生效,使等效电压矢量中心与计算时刻严格对齐。该策略显著提升系统确定性,为20 kHz以上高频电流环提供物理支撑,并广

flink9streamer的博客 857

linux 字段串不为空脚本,Bash技巧:对比 test、[、[[ 判断字符串是否为空的用法...

在 bash 中,test 命令、[ 命令、[[ 命令都可以用于进行一些判断。例如,这三个命令都可以用来判断字符串是否为空。实际使用时,这几个命令的用法有一些异同和一些注意事项。具体说明如下。test 命令 和 [ 命令的关系在 bash 中,[ 关键字本身是一个命令,它不是 if 命令的一部分。执行 help [ 命令,有如下说明:[: [ arg... ]Evaluate conditiona...

weixin_30704909的博客 1378

Unreal5 从入门到精通之 如何实现 离线语音识别

本文介绍了如何使用离线语音识别插件 Offline Speech Recognition 进行本地语音转文本处理。该插件支持离线运行,用户可以通过下载并运行语言服务器(如 Vosk)来处理语音数据。文章详细说明了如何设置语言服务器、下载语言模型,并在虚幻引擎(UE)项目中配置麦克风和语音捕获。此外,还介绍了如何将 SoundWave 作为输入,以及如何通过节点将语音数据发送到语言服务器进行处理。最后,提供了相关文档链接以供进一步参考。

TxNet 903

【AI智能体】Skills 智能体驱动开发从使用到项目实战详解

Skills 智能体驱动开发从使用到项目实战详解

congge 6600

Shell判断字符串(变量)是否为空

Shell判断字符串(变量)是否为空

Thinking In Java 6万+

微信公众平台 - 微信内置浏览器 WeixinJSBridge.invoke(‘xxx‘) API 报错:system:access_denied(常见于微信支付、分享朋友圈/转发好友等功能)解决方案

微信支付提示System:access_denied,调用微信支付返回:system:access_denied为什么,安卓版微信支付偶尔出现system:access_denied,微信公众号开发分享出现system:access_denied,system:access_denied如何解决?微信WeixinJSBridge.invoke(‘xxx‘)API调用后出现报错,微信内部H5WeixinJSBridge.invokesystem:access_denied,使用微信jssdk时报ac

🏆 前端领域优质创作者 5144

bash 字符串不为空判断

在 Bash 脚本中,可以通过多种方式判断一个字符串是否为空。

Lucy_wzw的博客 496

YOLOv11改进 | 模型知识蒸馏篇 | 利用模型蒸馏改进YOLOv11进行无损涨点 | 离线蒸馏(附代码 + 完整文件 + 解析教程)

这篇文章给大家带来的最新改进是模型的蒸馏,利用教师模型指导学生模型从而进行模型的涨点,本文的内容不仅可以用于论文中,在目前的绝大多数的工作中模型蒸馏是一项非常重要的技术,所以大家可以仔细学习一下本文的内容,本文从YOLOv8的项目文件为例,进行详细的修改教程,文章内包括完整的修改教程,针对小白我出了视频修改教程,如果你还不会我提供了修改后的文件大家直接运行即可,所以说不用担心不会适用!模型蒸馏真正的无损涨点,蒸馏你只看这一篇文章就足够了!欢迎大家订阅我的专栏一起学习YOLO!

Snu77的博客 4318

自适应滤波器在噪声消除中的应用:系统设计与实现

本文设计并实现了一种基于LMS算法的自适应噪声消除系统,能够有效消除周期性背景噪声,提升信噪比10dB以上。系统采用模块化设计,包含音频输入、自适应滤波、信号分析和可视化等核心模块,支持实时处理与参数动态调整。通过Python实现,提供图形界面进行参数设置、频谱对比和音频播放功能,为语音增强提供了一种实用解决方案。

huanghm88的专栏 128

Bash脚本中检查变量是否为空的语法解析

Bash脚本中检查变量是否为空的语法解析

Leon_Jinhai_Sun的博客 672

lvgl 9虚拟键盘控件 (lv_keyboard) 使用指南

是 LittlevGL 提供的一个虚拟键盘控件,适用于在图形界面中输入文本。与按钮矩阵类似,虚拟键盘预定义了多个键位布局,支持多种模式和自定义键位映射,能够满足各种文本输入需求。通过与文本区域 (Text Area) 的结合,键盘能够自动将输入的字符传送到指定区域。控件是 LittlevGL 提供的强大虚拟键盘解决方案,适用于任何需要文本输入的界面。通过预定义的键盘模式、自定义键位映射和文本区域自动填充功能,可以大大提升用户输入体验。无论是在嵌入式系统的用户界面中,还是在其他需要虚拟键盘的应用中,

m0_62599305的博客 2185

java 判断包含6,Bash字符串处置(与Java对照) - 14.判断是否包含另外的字符串(多达6种方法)...

Bash字符串处理(与Java对照) - 14.判断是否包含另外的字符串(多达6种方法)Bash字符串处理(与Java对照) - 14.判断是否包含另外的字符串(多达6种方法)In JavaString.contains & String.indexOfString.contains方法只能判断是否包含某个子串,不能判断是否包含单个字符(当然能判断是否包含单个字符的子串)boolean ...

weixin_36255898的博客 162

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

linux shell 文件空,linux shell编程 如何判断一个文件是否为空

shell 判断文件/目录是否为空jfkidear144932015-01-15shell中如何判断一个变量是否为空l_nan365492014-07-14在shell中如何判断一个变量是否为空varyall188622018-01-23linux bash shell 判断目录是否为空的函数10km73722015-12-29shell 当前目录检测文件是否为空并删除RedTat19442016...

weixin_34237362的博客 3243

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

BASH字符串处理:字符串分割为数组

http://codingstandards.iteye.com/blog/1164910 Bash字符串处理(与Java对照) - 25.字符串分割(成数组) In Java String.split  String[]     split(String regex)           根据给定的正则表达式的匹配来拆分此字符串。  String[]

zouyongjin的专栏 7763

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

java判断字符串是否包含某个字符串_Bash技巧:使用[[命令的 =~ 操作符判断字符串的包含关系...

在 Linux bash shell 中,可以使用 [[ 命令来进行判断。其中,可以使用 [[ 命令的 =~ 操作符来判断某个字符串是否包含特定模式。查看 man bash 对 [[ 命令的 =~ 操作符说明如下:An additional binary operator, =~, is available, with the same precedence as == and !=.When i...

weixin_39606575的博客 487

Bash字符串处理(与Java对照) - 17.判断是否以另外的字符串结尾

From: http://codingstandards.iteye.com/blog/1187353 In Java String.endsWith oolean     endsWith(String suffix)           测试此字符串是否以指定的后缀结束。   StringUtils.endsWith & StringUtils.

JoeBlackZQQ的专栏 3089

Bash字符串处理(与Java对照) - 11.比较两个字符串大小(字典顺序、数值比较)...

Bash字符串处理(与Java对照) - 11.比较两个字符串大小(字典顺序、数值比较) In Java String.compareTo int     compareTo(String anotherString)           按字典顺序比较两个字符串。如果返回0,表示相等;<0表示小于;>0 表示大于。   int     compareToIgnor...

巨人站在肩膀上 806

Bash字符串处理(与Java对照) - 23.字符串替换、子串删除、子串截取

Bash字符串处理(与Java对照) - 23.字符串替换、子串删除、子串截取 In Java 字符串替换  String     replace(char oldChar, char newChar)           返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 而生成的。  String     replace(CharSe...

巨人站在肩膀上 633

Bash字符串处理(与Java对照) - 16.判断是否以另外的字符串开头

Bash字符串处理(与Java对照) - 16.判断是否以另外的字符串开头 In Java String.startsWith  boolean     startsWith(String prefix)           测试此字符串是否以指定的前缀开始。  boolean     startsWith(String prefix, int toffset) ...

巨人站在肩膀上 334

Bash字符串处理(与Java对照) - 22.判断字符串是否数字串

Bash字符串处理(与Java对照) - 22.判断字符串是否数字串 In Java 用正则表达式匹配方式判断字符串是否数字串 String str = "1234"; if (str.matches("\\d+")) {     // matched, it's digit string }   In Bash 使用模式匹配(Pattern Matching)判...

巨人站在肩膀上 307

Bash字符串处理(与Java对照) - 14.判断是否包含另外的字符串(多达6种方法)...

Bash字符串处理(与Java对照) - 14.判断是否包含另外的字符串(多达6种方法) In Java String.contains & String.indexOf String.contains方法只能判断是否包含某个子串,不能判断是否包含单个字符(当然能判断是否包含单个字符的子串) boolean     contains(CharSequence s)  ...

巨人站在肩膀上 398

[Bash基础] 判断字符串相等

判断字符串相等 六种方式: test "$S1" = "$S2" [ "$S1" = "$S2" ] test "$S1" == "$S2" [ "$S1" == "$S2" ] [[ $S1 = $S2 ]] [[ $S1 == $S2 ]] Note: 在[[ ]]中,变量的引用可以不加双引号;这是与[ ]的不同之处。 判断字符串不相等 test "$S1" != "$S2" [ "$S1" != "$S2" ] [[ $S1 != $S2 ]] 也可以在判断字符串相等的基

mathemagics的博客 6057

Bash字符串处理(与Java对照) - 10.判断两个字符串是否相等(不等)

Bash字符串处理(与Java对照) - 10.判断两个字符串是否相等(不等) In Java String.equals & String.equalsIgnoreCase boolean     equals(Object anObject)           比较此字符串与指定的对象。   boolean     equalsIgnoreCase(Strin...

巨人站在肩膀上 596
上一篇: Bash字符串处理(与Java对照) - 5.字符串输入(读取字符串)
下一篇: Bash字符串处理(与Java对照) - 7.字符串与默认值
codingstandards
博客等级 码龄16年 12粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值