How to check if a string is empty in Emacs Lisp?
Starting in emacs 24.4, there are two different functions available for you to call, depending on what you mean by 'empty'.
(string-empty-p " ")
nil
(string-blank-p " ")
0
I'm having trouble finding docs to link to, but emacsredux.com has more information.
If you get the error Symbol's function definition is void.
, include (require 'subr-x)
in the initialization file (it's a package for trimming and string manipulation).
I keep this one in my utils.lisp
:
(defun empty-string-p (string)
"Return true if the STRING is empty or nil. Expects string type."
(or (null string)
(zerop (length (string-trim string)))))
then I do:
(not (empty-string-p some-string))
Since in elisp, a String is an int array, you can use
(= (length user-str) 0)
You can also use (string=) which is usually easier to read
(string= "" user-str)
Equal works as well, but a bit slower:
(equal "" user-str)
If you work with strings heavily in your code, i strongly recommend using Magnar Sveen's s.el
string manipulation library.
s-blank?
checks if the string is empty:
(s-blank? "") ; => t