Java collections sort method for string is not working properly for case sensitive and special characters
I was working on sorting a list of String in Java (1.8) and came to know that it is not working as expected!
I am trying the following code for sorting:
private Set<String> getTestData() {
Set<String> compRoles = new HashSet<>();
compRoles.add("AA");
compRoles.add("Aa");
compRoles.add("aA");
compRoles.add("aa");
compRoles.add("11");
compRoles.add("117");
compRoles.add("12");
compRoles.add("21");
compRoles.add("!@");
compRoles.add("@!");
compRoles.add("@@!");
compRoles.add("BB");
compRoles.add("Bb");
compRoles.add("bb");
return compRoles;
}
public static void main(String args) {
List<String> test = new ArrayList<>(new Test().getTestData());
System.out.println(test);
Collections.sort(test);
System.out.println(test);
}
Before sort: [AA, Aa, aA, aa, 11, BB, Bb, bb, 12, @!, @@!, 117, 21, !@]
After sort: [!@, 11, 117, 12, 21, @!, @@!, AA, Aa, BB, Bb, aA, aa, bb]
My expectation is: [!@, @!, @@!, 11, 117, 12, 21, aa, aA, Aa, AA, bb, Bb, BB]
Do I need to use something else other that natural sort for this?
java sorting collections
add a comment |
I was working on sorting a list of String in Java (1.8) and came to know that it is not working as expected!
I am trying the following code for sorting:
private Set<String> getTestData() {
Set<String> compRoles = new HashSet<>();
compRoles.add("AA");
compRoles.add("Aa");
compRoles.add("aA");
compRoles.add("aa");
compRoles.add("11");
compRoles.add("117");
compRoles.add("12");
compRoles.add("21");
compRoles.add("!@");
compRoles.add("@!");
compRoles.add("@@!");
compRoles.add("BB");
compRoles.add("Bb");
compRoles.add("bb");
return compRoles;
}
public static void main(String args) {
List<String> test = new ArrayList<>(new Test().getTestData());
System.out.println(test);
Collections.sort(test);
System.out.println(test);
}
Before sort: [AA, Aa, aA, aa, 11, BB, Bb, bb, 12, @!, @@!, 117, 21, !@]
After sort: [!@, 11, 117, 12, 21, @!, @@!, AA, Aa, BB, Bb, aA, aa, bb]
My expectation is: [!@, @!, @@!, 11, 117, 12, 21, aa, aA, Aa, AA, bb, Bb, BB]
Do I need to use something else other that natural sort for this?
java sorting collections
13
so, for you 'a' comes before 'A' .. ok. well, you'll need to write your own sorting logic, but it 'll be pretty broad. you'll actually have to compare char by char. good luck.
– Stultuske
Mar 18 at 7:19
8
The answer is in the question. Given that the natural ordering doesn't order elements as you would like to, you need something else.
– JB Nizet
Mar 18 at 7:19
This is already implemented in jQuery sort. datatables.net/examples/styling/bootstrap4 But I don't the the algo they are using! Because of this UI and back-end is not in sync. Any idea on this?
– Prabal Srivastava
Mar 18 at 7:26
1
The unicode of ! is smaller than that of @ , unicode of @ is small than 1, unicode of 1 is smaller than A, uncicode of A is smaller than a. Hope it answers for the output that you get. Now If you need sorting as per your ordering , implement your comparator.
– nits.kk
Mar 18 at 8:36
@nits.kk: I am totally agree with the answer given by jaspreet. We can solve this issue by using docs.oracle.com/javase/7/docs/api/java/text/Collator.html
– Prabal Srivastava
Mar 18 at 9:14
add a comment |
I was working on sorting a list of String in Java (1.8) and came to know that it is not working as expected!
I am trying the following code for sorting:
private Set<String> getTestData() {
Set<String> compRoles = new HashSet<>();
compRoles.add("AA");
compRoles.add("Aa");
compRoles.add("aA");
compRoles.add("aa");
compRoles.add("11");
compRoles.add("117");
compRoles.add("12");
compRoles.add("21");
compRoles.add("!@");
compRoles.add("@!");
compRoles.add("@@!");
compRoles.add("BB");
compRoles.add("Bb");
compRoles.add("bb");
return compRoles;
}
public static void main(String args) {
List<String> test = new ArrayList<>(new Test().getTestData());
System.out.println(test);
Collections.sort(test);
System.out.println(test);
}
Before sort: [AA, Aa, aA, aa, 11, BB, Bb, bb, 12, @!, @@!, 117, 21, !@]
After sort: [!@, 11, 117, 12, 21, @!, @@!, AA, Aa, BB, Bb, aA, aa, bb]
My expectation is: [!@, @!, @@!, 11, 117, 12, 21, aa, aA, Aa, AA, bb, Bb, BB]
Do I need to use something else other that natural sort for this?
java sorting collections
I was working on sorting a list of String in Java (1.8) and came to know that it is not working as expected!
I am trying the following code for sorting:
private Set<String> getTestData() {
Set<String> compRoles = new HashSet<>();
compRoles.add("AA");
compRoles.add("Aa");
compRoles.add("aA");
compRoles.add("aa");
compRoles.add("11");
compRoles.add("117");
compRoles.add("12");
compRoles.add("21");
compRoles.add("!@");
compRoles.add("@!");
compRoles.add("@@!");
compRoles.add("BB");
compRoles.add("Bb");
compRoles.add("bb");
return compRoles;
}
public static void main(String args) {
List<String> test = new ArrayList<>(new Test().getTestData());
System.out.println(test);
Collections.sort(test);
System.out.println(test);
}
Before sort: [AA, Aa, aA, aa, 11, BB, Bb, bb, 12, @!, @@!, 117, 21, !@]
After sort: [!@, 11, 117, 12, 21, @!, @@!, AA, Aa, BB, Bb, aA, aa, bb]
My expectation is: [!@, @!, @@!, 11, 117, 12, 21, aa, aA, Aa, AA, bb, Bb, BB]
Do I need to use something else other that natural sort for this?
java sorting collections
java sorting collections
edited Mar 18 at 16:29
Peter Mortensen
13.8k1987113
13.8k1987113
asked Mar 18 at 7:16
Prabal SrivastavaPrabal Srivastava
218310
218310
13
so, for you 'a' comes before 'A' .. ok. well, you'll need to write your own sorting logic, but it 'll be pretty broad. you'll actually have to compare char by char. good luck.
– Stultuske
Mar 18 at 7:19
8
The answer is in the question. Given that the natural ordering doesn't order elements as you would like to, you need something else.
– JB Nizet
Mar 18 at 7:19
This is already implemented in jQuery sort. datatables.net/examples/styling/bootstrap4 But I don't the the algo they are using! Because of this UI and back-end is not in sync. Any idea on this?
– Prabal Srivastava
Mar 18 at 7:26
1
The unicode of ! is smaller than that of @ , unicode of @ is small than 1, unicode of 1 is smaller than A, uncicode of A is smaller than a. Hope it answers for the output that you get. Now If you need sorting as per your ordering , implement your comparator.
– nits.kk
Mar 18 at 8:36
@nits.kk: I am totally agree with the answer given by jaspreet. We can solve this issue by using docs.oracle.com/javase/7/docs/api/java/text/Collator.html
– Prabal Srivastava
Mar 18 at 9:14
add a comment |
13
so, for you 'a' comes before 'A' .. ok. well, you'll need to write your own sorting logic, but it 'll be pretty broad. you'll actually have to compare char by char. good luck.
– Stultuske
Mar 18 at 7:19
8
The answer is in the question. Given that the natural ordering doesn't order elements as you would like to, you need something else.
– JB Nizet
Mar 18 at 7:19
This is already implemented in jQuery sort. datatables.net/examples/styling/bootstrap4 But I don't the the algo they are using! Because of this UI and back-end is not in sync. Any idea on this?
– Prabal Srivastava
Mar 18 at 7:26
1
The unicode of ! is smaller than that of @ , unicode of @ is small than 1, unicode of 1 is smaller than A, uncicode of A is smaller than a. Hope it answers for the output that you get. Now If you need sorting as per your ordering , implement your comparator.
– nits.kk
Mar 18 at 8:36
@nits.kk: I am totally agree with the answer given by jaspreet. We can solve this issue by using docs.oracle.com/javase/7/docs/api/java/text/Collator.html
– Prabal Srivastava
Mar 18 at 9:14
13
13
so, for you 'a' comes before 'A' .. ok. well, you'll need to write your own sorting logic, but it 'll be pretty broad. you'll actually have to compare char by char. good luck.
– Stultuske
Mar 18 at 7:19
so, for you 'a' comes before 'A' .. ok. well, you'll need to write your own sorting logic, but it 'll be pretty broad. you'll actually have to compare char by char. good luck.
– Stultuske
Mar 18 at 7:19
8
8
The answer is in the question. Given that the natural ordering doesn't order elements as you would like to, you need something else.
– JB Nizet
Mar 18 at 7:19
The answer is in the question. Given that the natural ordering doesn't order elements as you would like to, you need something else.
– JB Nizet
Mar 18 at 7:19
This is already implemented in jQuery sort. datatables.net/examples/styling/bootstrap4 But I don't the the algo they are using! Because of this UI and back-end is not in sync. Any idea on this?
– Prabal Srivastava
Mar 18 at 7:26
This is already implemented in jQuery sort. datatables.net/examples/styling/bootstrap4 But I don't the the algo they are using! Because of this UI and back-end is not in sync. Any idea on this?
– Prabal Srivastava
Mar 18 at 7:26
1
1
The unicode of ! is smaller than that of @ , unicode of @ is small than 1, unicode of 1 is smaller than A, uncicode of A is smaller than a. Hope it answers for the output that you get. Now If you need sorting as per your ordering , implement your comparator.
– nits.kk
Mar 18 at 8:36
The unicode of ! is smaller than that of @ , unicode of @ is small than 1, unicode of 1 is smaller than A, uncicode of A is smaller than a. Hope it answers for the output that you get. Now If you need sorting as per your ordering , implement your comparator.
– nits.kk
Mar 18 at 8:36
@nits.kk: I am totally agree with the answer given by jaspreet. We can solve this issue by using docs.oracle.com/javase/7/docs/api/java/text/Collator.html
– Prabal Srivastava
Mar 18 at 9:14
@nits.kk: I am totally agree with the answer given by jaspreet. We can solve this issue by using docs.oracle.com/javase/7/docs/api/java/text/Collator.html
– Prabal Srivastava
Mar 18 at 9:14
add a comment |
2 Answers
2
active
oldest
votes
You can use the Collator class of Java.
public static void main(String args) {
List<String> test = new ArrayList<>(new Test().getTestData());
System.out.println(test);
test.sort(Collator.getInstance(Locale.ENGLISH));
System.out.println(test);
}
Output:-
[AA, Aa, aA, aa, 11, BB, Bb, bb, 12, @!, @@!, 117, 21, !@]
[!@, @!, @@!, 11, 117, 12, 21, aa, aA, Aa, AA, bb, Bb, BB]
1
Thanks alot (y)
– Prabal Srivastava
Mar 18 at 8:42
3
Now days theList
class has its ownsort
method, so going through is an unnecessary step. It is a little bit clearer to write the code like this:list.sort(Collator.getInstance(Locale.ENGLISH));
.
– Lii
Mar 18 at 11:07
Thanks @Lii . Updated the answer. I didn't read he was working in Java 8 so answered Collections.sort instead of list.sort
– Jaspreet Jolly
Mar 18 at 11:27
2
It not always clear what Java version to target in our answers. But Java 8 has been out almost 5 years now! I think we can safely assume that that is the standard. Now days you can even declare your list like this:var test = new ArrayList<>(new Test().getTestData());
– Lii
Mar 18 at 11:51
add a comment |
You could create a custom comparator for your sorting logics. After this you can use it like this:
Collections.sort(yourArrayList, new YourComparator());
Appropriate your answer. I know the use of comparator and comparable. I am looking for the logic or algorithm used behind this.
– Prabal Srivastava
Mar 18 at 7:29
1
Then you question should look like you need a custom comparator, and should contain question about sorting algortims. The easiest way is to have weights for each letter and compare them in your way.
– ipave
Mar 18 at 7:34
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55216244%2fjava-collections-sort-method-for-string-is-not-working-properly-for-case-sensiti%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can use the Collator class of Java.
public static void main(String args) {
List<String> test = new ArrayList<>(new Test().getTestData());
System.out.println(test);
test.sort(Collator.getInstance(Locale.ENGLISH));
System.out.println(test);
}
Output:-
[AA, Aa, aA, aa, 11, BB, Bb, bb, 12, @!, @@!, 117, 21, !@]
[!@, @!, @@!, 11, 117, 12, 21, aa, aA, Aa, AA, bb, Bb, BB]
1
Thanks alot (y)
– Prabal Srivastava
Mar 18 at 8:42
3
Now days theList
class has its ownsort
method, so going through is an unnecessary step. It is a little bit clearer to write the code like this:list.sort(Collator.getInstance(Locale.ENGLISH));
.
– Lii
Mar 18 at 11:07
Thanks @Lii . Updated the answer. I didn't read he was working in Java 8 so answered Collections.sort instead of list.sort
– Jaspreet Jolly
Mar 18 at 11:27
2
It not always clear what Java version to target in our answers. But Java 8 has been out almost 5 years now! I think we can safely assume that that is the standard. Now days you can even declare your list like this:var test = new ArrayList<>(new Test().getTestData());
– Lii
Mar 18 at 11:51
add a comment |
You can use the Collator class of Java.
public static void main(String args) {
List<String> test = new ArrayList<>(new Test().getTestData());
System.out.println(test);
test.sort(Collator.getInstance(Locale.ENGLISH));
System.out.println(test);
}
Output:-
[AA, Aa, aA, aa, 11, BB, Bb, bb, 12, @!, @@!, 117, 21, !@]
[!@, @!, @@!, 11, 117, 12, 21, aa, aA, Aa, AA, bb, Bb, BB]
1
Thanks alot (y)
– Prabal Srivastava
Mar 18 at 8:42
3
Now days theList
class has its ownsort
method, so going through is an unnecessary step. It is a little bit clearer to write the code like this:list.sort(Collator.getInstance(Locale.ENGLISH));
.
– Lii
Mar 18 at 11:07
Thanks @Lii . Updated the answer. I didn't read he was working in Java 8 so answered Collections.sort instead of list.sort
– Jaspreet Jolly
Mar 18 at 11:27
2
It not always clear what Java version to target in our answers. But Java 8 has been out almost 5 years now! I think we can safely assume that that is the standard. Now days you can even declare your list like this:var test = new ArrayList<>(new Test().getTestData());
– Lii
Mar 18 at 11:51
add a comment |
You can use the Collator class of Java.
public static void main(String args) {
List<String> test = new ArrayList<>(new Test().getTestData());
System.out.println(test);
test.sort(Collator.getInstance(Locale.ENGLISH));
System.out.println(test);
}
Output:-
[AA, Aa, aA, aa, 11, BB, Bb, bb, 12, @!, @@!, 117, 21, !@]
[!@, @!, @@!, 11, 117, 12, 21, aa, aA, Aa, AA, bb, Bb, BB]
You can use the Collator class of Java.
public static void main(String args) {
List<String> test = new ArrayList<>(new Test().getTestData());
System.out.println(test);
test.sort(Collator.getInstance(Locale.ENGLISH));
System.out.println(test);
}
Output:-
[AA, Aa, aA, aa, 11, BB, Bb, bb, 12, @!, @@!, 117, 21, !@]
[!@, @!, @@!, 11, 117, 12, 21, aa, aA, Aa, AA, bb, Bb, BB]
edited Mar 18 at 11:24
answered Mar 18 at 7:36
Jaspreet JollyJaspreet Jolly
814522
814522
1
Thanks alot (y)
– Prabal Srivastava
Mar 18 at 8:42
3
Now days theList
class has its ownsort
method, so going through is an unnecessary step. It is a little bit clearer to write the code like this:list.sort(Collator.getInstance(Locale.ENGLISH));
.
– Lii
Mar 18 at 11:07
Thanks @Lii . Updated the answer. I didn't read he was working in Java 8 so answered Collections.sort instead of list.sort
– Jaspreet Jolly
Mar 18 at 11:27
2
It not always clear what Java version to target in our answers. But Java 8 has been out almost 5 years now! I think we can safely assume that that is the standard. Now days you can even declare your list like this:var test = new ArrayList<>(new Test().getTestData());
– Lii
Mar 18 at 11:51
add a comment |
1
Thanks alot (y)
– Prabal Srivastava
Mar 18 at 8:42
3
Now days theList
class has its ownsort
method, so going through is an unnecessary step. It is a little bit clearer to write the code like this:list.sort(Collator.getInstance(Locale.ENGLISH));
.
– Lii
Mar 18 at 11:07
Thanks @Lii . Updated the answer. I didn't read he was working in Java 8 so answered Collections.sort instead of list.sort
– Jaspreet Jolly
Mar 18 at 11:27
2
It not always clear what Java version to target in our answers. But Java 8 has been out almost 5 years now! I think we can safely assume that that is the standard. Now days you can even declare your list like this:var test = new ArrayList<>(new Test().getTestData());
– Lii
Mar 18 at 11:51
1
1
Thanks alot (y)
– Prabal Srivastava
Mar 18 at 8:42
Thanks alot (y)
– Prabal Srivastava
Mar 18 at 8:42
3
3
Now days the
List
class has its own sort
method, so going through is an unnecessary step. It is a little bit clearer to write the code like this: list.sort(Collator.getInstance(Locale.ENGLISH));
.– Lii
Mar 18 at 11:07
Now days the
List
class has its own sort
method, so going through is an unnecessary step. It is a little bit clearer to write the code like this: list.sort(Collator.getInstance(Locale.ENGLISH));
.– Lii
Mar 18 at 11:07
Thanks @Lii . Updated the answer. I didn't read he was working in Java 8 so answered Collections.sort instead of list.sort
– Jaspreet Jolly
Mar 18 at 11:27
Thanks @Lii . Updated the answer. I didn't read he was working in Java 8 so answered Collections.sort instead of list.sort
– Jaspreet Jolly
Mar 18 at 11:27
2
2
It not always clear what Java version to target in our answers. But Java 8 has been out almost 5 years now! I think we can safely assume that that is the standard. Now days you can even declare your list like this:
var test = new ArrayList<>(new Test().getTestData());
– Lii
Mar 18 at 11:51
It not always clear what Java version to target in our answers. But Java 8 has been out almost 5 years now! I think we can safely assume that that is the standard. Now days you can even declare your list like this:
var test = new ArrayList<>(new Test().getTestData());
– Lii
Mar 18 at 11:51
add a comment |
You could create a custom comparator for your sorting logics. After this you can use it like this:
Collections.sort(yourArrayList, new YourComparator());
Appropriate your answer. I know the use of comparator and comparable. I am looking for the logic or algorithm used behind this.
– Prabal Srivastava
Mar 18 at 7:29
1
Then you question should look like you need a custom comparator, and should contain question about sorting algortims. The easiest way is to have weights for each letter and compare them in your way.
– ipave
Mar 18 at 7:34
add a comment |
You could create a custom comparator for your sorting logics. After this you can use it like this:
Collections.sort(yourArrayList, new YourComparator());
Appropriate your answer. I know the use of comparator and comparable. I am looking for the logic or algorithm used behind this.
– Prabal Srivastava
Mar 18 at 7:29
1
Then you question should look like you need a custom comparator, and should contain question about sorting algortims. The easiest way is to have weights for each letter and compare them in your way.
– ipave
Mar 18 at 7:34
add a comment |
You could create a custom comparator for your sorting logics. After this you can use it like this:
Collections.sort(yourArrayList, new YourComparator());
You could create a custom comparator for your sorting logics. After this you can use it like this:
Collections.sort(yourArrayList, new YourComparator());
answered Mar 18 at 7:24
ipaveipave
19610
19610
Appropriate your answer. I know the use of comparator and comparable. I am looking for the logic or algorithm used behind this.
– Prabal Srivastava
Mar 18 at 7:29
1
Then you question should look like you need a custom comparator, and should contain question about sorting algortims. The easiest way is to have weights for each letter and compare them in your way.
– ipave
Mar 18 at 7:34
add a comment |
Appropriate your answer. I know the use of comparator and comparable. I am looking for the logic or algorithm used behind this.
– Prabal Srivastava
Mar 18 at 7:29
1
Then you question should look like you need a custom comparator, and should contain question about sorting algortims. The easiest way is to have weights for each letter and compare them in your way.
– ipave
Mar 18 at 7:34
Appropriate your answer. I know the use of comparator and comparable. I am looking for the logic or algorithm used behind this.
– Prabal Srivastava
Mar 18 at 7:29
Appropriate your answer. I know the use of comparator and comparable. I am looking for the logic or algorithm used behind this.
– Prabal Srivastava
Mar 18 at 7:29
1
1
Then you question should look like you need a custom comparator, and should contain question about sorting algortims. The easiest way is to have weights for each letter and compare them in your way.
– ipave
Mar 18 at 7:34
Then you question should look like you need a custom comparator, and should contain question about sorting algortims. The easiest way is to have weights for each letter and compare them in your way.
– ipave
Mar 18 at 7:34
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55216244%2fjava-collections-sort-method-for-string-is-not-working-properly-for-case-sensiti%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
13
so, for you 'a' comes before 'A' .. ok. well, you'll need to write your own sorting logic, but it 'll be pretty broad. you'll actually have to compare char by char. good luck.
– Stultuske
Mar 18 at 7:19
8
The answer is in the question. Given that the natural ordering doesn't order elements as you would like to, you need something else.
– JB Nizet
Mar 18 at 7:19
This is already implemented in jQuery sort. datatables.net/examples/styling/bootstrap4 But I don't the the algo they are using! Because of this UI and back-end is not in sync. Any idea on this?
– Prabal Srivastava
Mar 18 at 7:26
1
The unicode of ! is smaller than that of @ , unicode of @ is small than 1, unicode of 1 is smaller than A, uncicode of A is smaller than a. Hope it answers for the output that you get. Now If you need sorting as per your ordering , implement your comparator.
– nits.kk
Mar 18 at 8:36
@nits.kk: I am totally agree with the answer given by jaspreet. We can solve this issue by using docs.oracle.com/javase/7/docs/api/java/text/Collator.html
– Prabal Srivastava
Mar 18 at 9:14