((RuleBasedCollator)Collator.getInstance(Locale.FRANCE)).getRules();
RuleBasedCollator collTemp = (RuleBasedCollator) Collator .getInstance(Locale.US); String usRules = collTemp.getRules(); //Save rules in a file String rulesPath = "C:\\projects\\droid\\rules.txt"; BufferedWriter out = new BufferedWriter (new OutputStreamWriter(new FileOutputStream(rulesPath),"UTF-16")); out.write(usRules); out.close();
RuleBasedCollator localRules = (RuleBasedCollator) Collator.getInstance(); String extraRules = IntStream.range(0, 100).mapToObj(String::valueOf).collect(joining(" < ")); RuleBasedCollator c = new RuleBasedCollator(localRules.getRules() + " & " + extraRules); List<String> a = asList("1-2", "1-02", "1-20", "10-20", "fred", "jane", "pic01", "pic02", "pic02a", "pic 5", "pic05", "pic 7", "pic100", "pic100a", "pic120", "pic121"); shuffle(a); a.sort(c); System.out.println(a);
RuleBasedCollator collTemp = (RuleBasedCollator) Collator.getInstance(Locale.US); String usRules = collTemp.getRules(); //Remove dashes rule from US locale (dashes come after letters) usRules = usRules.replace(",'-'", ""); //Create a collator with customized rules RuleBasedCollator coll = new RuleBasedCollator(usRules); //Sort the collection based on collator Collections.sort(lines, coll);
String rules = ((RuleBasedCollator) Collator.getInstance(Locale.GERMANY)).getRules(); RuleBasedCollator correctedCollator = new RuleBasedCollator(rules.replaceAll("<'\u005f'", "<' '<'\u005f'"));
public SiteComparator(String criterion, String asc, Locale locale) { this(criterion, asc); m_loc = locale; try { RuleBasedCollator defaultCollator = (RuleBasedCollator) Collator.getInstance(locale); String rules = defaultCollator.getRules(); localeCollator = new RuleBasedCollator(rules.replaceAll("<'\u005f'", "<' '<'\u005f'")); localeCollator.setStrength(Collator.TERTIARY); } catch (Exception e) { log.warn("SiteComparator failed to create RuleBasedCollator for locale " + locale.toString(), e); localeCollator = null; } }
public AssignmentComparator(String criteria, String asc, boolean group) { m_criteria = criteria; m_asc = asc; m_group_submission = group; try { collator= new RuleBasedCollator(((RuleBasedCollator)Collator.getInstance()).getRules().replaceAll("<'\u005f'", "<' '<'\u005f'")); } catch (ParseException e) { // error with init RuleBasedCollator with rules // use the default Collator collator = Collator.getInstance(); M_log.warn(this + " AssignmentComparator cannot init RuleBasedCollator. Will use the default Collator instead. " + e); } }
/** * Fixes collator rules to handle ' ' comparison properly. * @param source * @return patched collator */ private Collator fixCollator(Collator source) { if (source instanceof RuleBasedCollator) { try { return new RuleBasedCollator( ((RuleBasedCollator)source).getRules().replaceAll( "<'\u005f'", "<' '<'\u005f'")); } catch (ParseException e) { // unable to fix, returning source silently return source; } } else { // unable to fix, returning source silently return source; } }
private static synchronized Collator updateCollatorRules(Collator collator) { if (collator instanceof RuleBasedCollator) { try { // get current collator rules String collatorRules = ((RuleBasedCollator)collator).getRules(); // we shoudn't ignore space character in character comparison - put it before u0021 character String newCollatorRules = collatorRules.replaceAll("<'\u0021'", "<'\u0020'<'\u0021'"); // create new collator with overridden rules return new RuleBasedCollator(newCollatorRules); } catch(ParseException e) { return collator; } } return collator; } }
private static synchronized Collator updateCollatorRules(Collator collator) { if (collator instanceof RuleBasedCollator) { try { // get current collator rules String collatorRules = ((RuleBasedCollator)collator).getRules(); // we shoudn't ignore space character in character comparison - put it before u0021 character String newCollatorRules = collatorRules.replaceAll("<'\u0021'", "<'\u0020'<'\u0021'"); // create new collator with overridden rules return new RuleBasedCollator(newCollatorRules); } catch(ParseException e) { return collator; } } return collator; } }
public MovieComparator() { RuleBasedCollator defaultCollator = (RuleBasedCollator) RuleBasedCollator.getInstance(); try { // default collator ignores whitespaces // using hack from http://stackoverflow.com/questions/16567287/java-collation-ignores-space stringCollator = new RuleBasedCollator(defaultCollator.getRules().replace("<'\u005f'", "<' '<'\u005f'")); } catch (Exception e) { stringCollator = defaultCollator; } }
public TvShowComparator() { RuleBasedCollator defaultCollator = (RuleBasedCollator) RuleBasedCollator.getInstance(); try { // default collator ignores whitespaces // using hack from http://stackoverflow.com/questions/16567287/java-collation-ignores-space stringCollator = new RuleBasedCollator(defaultCollator.getRules().replace("<'\u005f'", "<' '<'\u005f'")); } catch (Exception e) { stringCollator = defaultCollator; } }
String rules = ((RuleBasedCollator) collator).getRules();
String rules = ((RuleBasedCollator) collator).getRules();
public int compare(Object a, Object b) { RuleBasedCollator collator_ini = (RuleBasedCollator)Collator.getInstance(); try{ RuleBasedCollator collator = new RuleBasedCollator(collator_ini.getRules().replaceAll("<'\u005f'", "<' '<'\u005f'"));
public int compare(Object o1, Object o2) { try{ RuleBasedCollator r_collator= new RuleBasedCollator(((RuleBasedCollator)Collator.getInstance()).getRules().replaceAll("<'\u005f'", "<' '<'\u005f'")); return r_collator.compare(((EnrollmentRecord)o1).getUser().getSortName(),((EnrollmentRecord)o2).getUser().getSortName()); }catch(ParseException e){ return Collator.getInstance().compare(((EnrollmentRecord)o1).getUser().getSortName(),((EnrollmentRecord)o2).getUser().getSortName()); } } };
public int compare(Object o1, Object o2) { try{ RuleBasedCollator r_collator= new RuleBasedCollator(((RuleBasedCollator)Collator.getInstance()).getRules().replaceAll("<'\u005f'", "<' '<'\u005f'")); return r_collator.compare(((EnrollmentRecord)o1).getUser().getDisplayId(),((EnrollmentRecord)o2).getUser().getDisplayId()); }catch(ParseException e){ return Collator.getInstance().compare(((EnrollmentRecord)o1).getUser().getDisplayId(),((EnrollmentRecord)o2).getUser().getDisplayId()); } } };
String rules = coll.getRules().replaceAll(",'-'", ""); // don't ignore dash rules = rules.replaceAll("<'_'", "<' '<'-'<'_'"); // sort dash and space before underscore try {
public int compare(Object o1, Object o2) { try{ RuleBasedCollator r_collator= new RuleBasedCollator(((RuleBasedCollator)Collator.getInstance()).getRules().replaceAll("<'\u005f'", "<' '<'\u005f'")); return r_collator.compare(((EnrollmentRecord)o1).getUser().getSortName(),((EnrollmentRecord)o2).getUser().getSortName()); }catch(ParseException e){ return Collator.getInstance().compare(((EnrollmentRecord)o1).getUser().getSortName(),((EnrollmentRecord)o2).getUser().getSortName()); } } };
public int compare(Object o1, Object o2) { try{ RuleBasedCollator r_collator= new RuleBasedCollator(((RuleBasedCollator)Collator.getInstance()).getRules().replaceAll("<'\u005f'", "<' '<'\u005f'")); return r_collator.compare(((EnrollmentRecord)o1).getUser().getDisplayId(),((EnrollmentRecord)o2).getUser().getDisplayId()); }catch(ParseException e){ return Collator.getInstance().compare(((EnrollmentRecord)o1).getUser().getDisplayId(),((EnrollmentRecord)o2).getUser().getDisplayId()); } } };