simple conditional in java (unexpected issue)

前端 未结 3 1561
不知归路
不知归路 2021-01-29 14:52

I have an unexpected issue when using a conditional operator in java. The code is supposed to check if the ArrayList contains a specific string, then it returns tru

相关标签:
3条回答
  • 2021-01-29 15:30

    Try this:

    public boolean isDone() {
    
        ArrayList<String> al = new ArrayList<String>();
    
        al.add(d1.getText());
        al.add(d2.getText());   
        al.add(d3.getText());    
        al.add(d4.getText());   
        al.add(d5.getText()); 
    
        for (String str : al)
            if (str != null && str.contains("."))
                return false;
    
        return true;
    
    }
    

    You have to check each string individually, the contains() method in ArrayList will return true only if the exact string "." is present in the list, not if one of the strings in the list contains a dot.

    0 讨论(0)
  • 2021-01-29 15:43

    Your List<String> does not contain the String that equals ".". You have a String that contains a . but that is not the same thing. You can do that with String.contains(CharSequence),

    public boolean isDone() {
      List<String> al = new ArrayList<String>(); // <-- I would use the Interface type
      al.add(d1.getText());
      al.add(d2.getText());   
      al.add(d3.getText());    
      al.add(d4.getText());   
      al.add(d5.getText());
    
      // If any String in al contains a '.' return false, else true.
      for (String str : al) {
        if (str.contains(".")) {
          return false;
        }
      }
      return true;
    }    
    
    0 讨论(0)
  • 2021-01-29 15:47

    When you use a1.contains(...), you are checking if any sting in array is ".". This is different from your intention to check if any string in array "a1" contains '.' char as I understand.

    If you need to check if any string in array contains "." text it can be like this:

    for(String text : a1) {
      if(text != null && text.indexOf(".") >= 0) {
        return false;
      }
    }
    return true;
    
    0 讨论(0)
提交回复
热议问题