【问题标题】:How do I write this code without refactoring? [duplicate]如何在不重构的情况下编写此代码? [复制]
【发布时间】:2016-04-02 06:25:05
【问题描述】:

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

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

【问题讨论】:

  • if(name == null) { name =""; } 其他 { 名称 = name.trim(); }
  • 你希望它有多基本?

标签: java refactoring


【解决方案1】:

您的代码类似于:

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 被替换为 "? :" 运算符

【讨论】:

    【解决方案2】:

    您看到的是“三元运算符”。它遵循以下语法:

    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);
    

    【讨论】:

      【解决方案3】:

      如果name 等于null 它将等于“”;

      否则它将等于name.trim()

      【讨论】:

        【解决方案4】:
         name = name == null ? "" : name.trim();
        

        意思是

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-04-09
          • 1970-01-01
          • 2018-05-26
          • 2023-03-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-06-08
          相关资源
          最近更新 更多