如何最好地确定一个字符串是否只包含空字符?

检查字符串是否仅包含空字符的正确方法是什么?

String s = "u0000";
if(s.charAt(0) == 0) {
   System.out.println("null characters only");
}

或者

String s = "";
for(int i = 0; i < s.length(); i++) {
   if(s.charAt(i) == 0) 
       continue;

   else break;

}

两者都有效。但是有没有更好,更简洁的方法来执行此检查。是否有实用程序可以检查 java 中的字符串是否仅包含空字符(u0000OR )?

和之间有什么区别'''u0000'

回答

一个char文字(在Java中)可以写成多种方式(所有这些都是相当)。例如,

System.out.println('u0000' == '');
System.out.println('u0000' == 0);

会输出

true
true

因为 achar是 Java 中的 16 位整数类型。并且u0000,和 的所有三个0都是相同的值。至于查找 a 是否String仅包含0 char值 - 只需对其进行迭代即可。喜欢,

boolean allNulls = true;
for (int i = 0; i < s.length(); i++) {
    if (s.charAt(i) != 0) {
        allNulls = false;
        break;
    }
}

  • ... and if you want a **consise** way to do the test, put the above code into a method/function.

回答

您可以获取chars()as an IntStream,然后使用allMatch

if (yourString.chars().allMatch(x -> x == 0)) {
    // all null chars!
}


以上是如何最好地确定一个字符串是否只包含空字符?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>