void () { String filtersText = getText(); ArrayList<ClassFilter> classFilters = new ArrayList<>(); ArrayList<ClassFilter> exclusionFilters = new ArrayList<>(); int startFilter = -1; for (int i = 0; i <= filtersText.length(); i++) { if (i < filtersText.length() && !Character.isWhitespace(filtersText.charAt(i))) { if (startFilter == -1) { startFilter = i; } } else { if (startFilter >= 0) { if (filtersText.charAt(startFilter) == '-') { exclusionFilters.add(new ClassFilter(filtersText.substring(startFilter + 1, i))); } else { classFilters.add(new ClassFilter(filtersText.substring(startFilter, i))); } startFilter = -1; } } } Arrays.stream(myClassFilters).filter(f -> !f.isEnabled()).forEach(classFilters::add); Arrays.stream(myClassExclusionFilters).filter(f -> !f.isEnabled()).forEach(classFilters::add); myClassFilters = classFilters.toArray(ClassFilter.EMPTY_ARRAY); myClassExclusionFilters = exclusionFilters.toArray(ClassFilter.EMPTY_ARRAY); }