如何在不重构的情况下编写此代码?

How do I write this code without refactoring?

我最近得到了帮助,编写了一个语句来检查输入文本是空白还是只有空格。我让它工作了,但并不真正理解代码,因为它对我来说太高级了。有人可以将此翻译成更基本的代码吗?

name = name == null ? "" : name.trim();

如果 name 等于 null 它将等于 "";

否则它将等于name.trim()

您的代码类似于:

String name = //your input
if(name==null)  {//if name si null
    name = "";//assign empty string
} else {
    name = name.trim(); //remove leading and trailing whitespace
}

if else 替换为 "? :" 运算符

您看到的是 "ternary operator"。它遵循以下语法:

boolean ? ifTrue : ifFalse

三元运算符的工作方式与 if/else 语句不同:它们为您提供一个值(如 3 + 4)。

所以在本例中,您将 name 设置为以下三元表达式的结果:

is name null? -+- true --> ""
               |
               +- false -> name.trim() (this function removes whitespace at
                                        the beginning and at the end of the string)

你也可以这样写:

public static String parseName(String name)
{
    if (name == null)
        return "";
    //else (else not neccesary here)
        return name.trim();
}

// in some block...
name = parseName(name);
 name = name == null ? "" : name.trim();

这意味着

 String name;
 //You performed some processing here, your logic.
 if(name==null){
  name="";
 }
 else{
  name=name.trim();
 }