How to sort an array of strings where each string represents a decimal number in Java

1 Answer

0 votes
import java.util.Arrays;

public class SortDecimalStrings {

    // Comparator method to sort strings as decimal numbers
    public static int compareAsDecimal(String a, String b) {
        // Convert strings to double for comparison
        double numA = Double.parseDouble(a);
        double numB = Double.parseDouble(b);

        return Double.compare(numA, numB);
    }

    public static void main(String[] args) {
        // Input array of strings
        String[] numbers = {"12.3", "5.6", "789.1", "3.14", "456.0", "0", "0.01", "4.0"};

        // Sort the array using the custom comparator
        Arrays.sort(numbers, (a, b) -> compareAsDecimal(a, b));

        System.out.println("Sorted array of decimal strings:");
        for (String num : numbers) {
            System.out.print(num + "  ");
        }
    }
}



/*
run:

Sorted array of decimal strings:
0  0.01  3.14  4.0  5.6  12.3  456.0  789.1

*/

 



answered Sep 1, 2025 by avibootz
...