How to sort by strings a mixed pair of string and number elements in a list with Java

1 Answer

0 votes
import java.util.Arrays;
import java.util.List;

public class SortByString {
    public static void main(String[] args) {
        List<String> lst = Arrays.asList(
            "Python 4", "C 9", "C++ 5", "C# 6",
            "Java 1", "PHP 7", "Go 2"
        );

        lst.sort((a, b) -> {
            String nameA = extractName(a);
            String nameB = extractName(b);
            return nameA.compareTo(nameB);
        });

        lst.forEach(System.out::println);
    }

    private static String extractName(String s) {
        int pos = s.lastIndexOf(' ');
        
        return s.substring(0, pos);
    }
}



/*
run:

C 9
C# 6
C++ 5
Go 2
Java 1
PHP 7
Python 4

*/

 



answered Jan 22 by avibootz

Related questions

...