Вы не можете, литерал шаблона был оценен и преобразован в строку, когда инициализатор объекта, который был внутри, был оценен. obj.title
- результат вычисления литерала шаблона (строка 1), а не какого-либо объекта шаблона. Литералы шаблонов - это именно то, что: литеральная нотация , которая оценивается, когда она встречается (точно так же, как строковый литерал оценивается, в результате получается строка, когда встречается литерал строки) .
Вместо этого вы можете сделать title
функцию, которую вы передаете name
в:
let obj1 = { name: 'abc' },
obj2 = { title : name => `${name}` }
Вы должны называть ее, конечно, когда захотите заголовок.
¹ Строка в этом случае , поскольку шаблонный литерал был автономным, не привязан к функции тега.
Это связано с порядком набора символов ASCII, где «Z» идет первым, чем «a»
RuleBasedCollator проверяет только первую букву строки для сортировки. Как правило, вы установили (A < a). В нем перечислены все строки, начинающиеся с заглавных букв, а затем идут строчные.
Поскольку ваш список содержит строку, начинающуюся со специальных символов, я предлагаю создать два списка для сортировки. Один для строки, начинающейся со специальных символов, а затем другой список, содержащий все другие значения. Сортируйте эти два списка по отдельности, а затем объединяйте отсортированные списки. Я попробовал приведенный ниже код, и он отлично работает
// Input list
List<String> name = new ArrayList<String>();
final String[] specialChars = { "_", ">" };
List<String> specCharList = new ArrayList<String>();
List<String> strList = new ArrayList<String>();
List<String> finalList = new ArrayList<String>();
String rules = "< '_' < '>' ";
boolean isSpec = false ;
for(String names : name) {
isSpec = false ;
for(int i=0;i<specialChars.length;i++) {
if(names.startsWith(specialChars[i])) {
// System.out.println("Name : "+names);
isSpec = true ;
}
}
// to sort special char list and normal list
if(isSpec) {
specCharList.add(names);
} else {
strList.add(names);
}
}
try {
// To sort special character list
Collections.sort(specCharList, new RuleBasedCollator(rules));
// Add the sorted list to finallist
finalList.addAll(specCharList);
// to sort other list
Collections.sort(strList, String.CASE_INSENSITIVE_ORDER);
// Add the sorted list to finallist
finalList.addAll(strList);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Final Output List --------");
for(String names : finalList) {
System.out.println(names);
}