如何在不重构的情况下编写此代码?
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();
}
我最近得到了帮助,编写了一个语句来检查输入文本是空白还是只有空格。我让它工作了,但并不真正理解代码,因为它对我来说太高级了。有人可以将此翻译成更基本的代码吗?
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();
}