@Override
	    /**
	     * Split the device name into the digit and non-digit portions and compare separately
	     * i.e. for "/dev/ttyUSB9" and "/dev/ttyUSB10", the "/dev/ttyUSB" parts are first compared
	     * then the "9" and "10" are compared numerically. 
	     */
	    public int compare(String dev1, String dev2) {
	        int digitPos1 = getDigitPosition(dev1);
	        int digitPos2 = getDigitPosition(dev2);
	        
	        String text1 = dev1.substring(0, digitPos1);
	        String text2 = dev2.substring(0, digitPos2);
	        
	        String num1 = dev1.substring(digitPos1, dev1.length());
	        String num2 = dev2.substring(digitPos2, dev2.length());
	        
	        // Compare text portion
	        int textCompare = text1.compareTo(text2);
	        if(textCompare != 0) {
	            return textCompare;
	        }
	        
	        // Compare numerical portion
	        if(num1 == null || num1.isEmpty()) {
	            if(num2 == null || num2.isEmpty()) {
	                return 0;
	            } else {
	                return -1;
	            }
	        } else if (num2 == null || num2.isEmpty()) {
	            return 1;
	        }
	        
	        Integer int1 = Integer.parseInt(num1);
	        Integer int2 = Integer.parseInt(num2);
	        return int1.compareTo(int2);
	    }