【问题标题】:A string that is displayed as message conditioned by 3 booleans (java)显示为受 3 个布尔值条件的消息的字符串 (java)
【发布时间】:2022-01-18 07:13:19
【问题描述】:

我在互联网上搜索过,但没有找到好的解决方案。 我不是一个好的开发人员,所以可能这对某人来说太简单了,但我在解决这个问题上花费了太多时间。 在我正在处理的这个项目中,我需要构建一个字符串,这个字符串由 3 个布尔值决定,有一个示例和我的错误解决方案:

boolean a;
boolean b;
boolean c;

protected String getMessage(){
String result = "";

if(a){
  result += "Problem A"
}

if(b){
  result += ", Problem B"
}

if(c){
  result += ", Problem C."
}

return result ;
}

所以问题在于,也许唯一真正的布尔值可能是布尔值 C,因此结果消息将是“,问题 C”。

我要求一个好的代码质量,它返回一个字符串并解决“,”和“。”的问题

也许有人可以给出的解决方案是使用嵌套 if 例如 if (a && b) then "Problem A , Problem B."但在这种情况下,如果条件和代码复杂度不好,我需要实现 8。

有没有更聪明的方法来做我要求的事情?

【问题讨论】:

    标签: java string boolean


    【解决方案1】:

    你可以使用 StringJoiner

         StringJoiner sj = new StringJoiner(", ", "", ".");
         sj.add("Problem1");
         System.out.println(sj.toString());
         
         sj.add("Problem2");
         System.out.println(sj.toString());
    

    输出

    Problem1.
    Problem1, Problem2.
    

    【讨论】:

      【解决方案2】:

      喜欢这个?

      boolean a;
      boolean b;
      boolean c;
      
      protected String getMessage() {
          List<String> list = new ArrayList<>();
      
          if (a) {
              list.add("Problem A");
          }
      
          if (b) {
              list.add("Problem B");
          }
      
          if (c) {
              list.add("Problem C");
          }
      
          String result = String.join(", ", list) + ".";
      
          return result;
      }
      

      【讨论】:

        【解决方案3】:

        这是一种方法。

         List list = new ArrayList();
        
            if (a) {
                list.add("Problem A");
            }
        
            if (b) {
                list.add("Problem B");
            }
        
            if (c) {
                list.add("Problem C");
            }
        
            return list.toString().replace("[", "").replace("]", ".");
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-10-17
          • 2022-01-06
          • 2017-07-15
          • 2023-03-03
          • 1970-01-01
          • 2013-11-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多