如何使用 1 方法获取字符串的长度?更短

How to get a length of a String by using 1 method? SHORTER

获取单个字符串的长度真的很容易return它的值!

public static int length(String s){//trys and returns length of any string
    try{//try code
    len = s.length();//gets the length of any string
    }catch (NullPointerException nullError){//checks for nulls
        len = 0;//if there is a null then there is 0 length of the string
    }
    return len;//return the integer length of any string
}

这个简单的代码会捕获错误! 错误的一个示例是,如果您使用 JOptionPane 并且用户不打印任何内容只是单击 X。这将导致空错误! 因此,如果是这种情况,那么长度将仅为 0!

但现在我只想知道如何让这段代码更短!

return str != null ? str.length() : 0

public static int length(String s){
   return s==null?0:s.length();
}

你这边有误会。

A null 字符串为 null。它没有长度 字符串的长度为 0。

为了增加更多的混乱,试试当你这样做时会发生什么

String str = null;
System.out.println(str);

惊奇...这将打印 更多 而不仅仅是一个空行。

换句话说:在 定义 一个 null 字符串的长度为 0 之前最好三思!

从这个意义上说,你最好做一些类似

的事情
public static String ensureNotNull(String input) {
  if (input == null) { return ""; }
  return input;
}

String someString = ... coming from somewhere, maybe null
someString = ensureNotNull(someString);

因为that 将确保 someString 的长度为 0,并且不为空!更重要的是:"your" 的想法是 A) 一些字符串变量 B) 一些额外的 int 变量。意思是:基于那个字符串的值,你必须携带那个额外的 int 值。因此,突然之间,您处理那个字符串的代码...还必须处理那个 other int 值。每时每刻。不是个好主意。