All Downloads are FREE. Search and download functionalities are using the official Maven repository.

prerna.util.StringNumericComparator Maven / Gradle / Ivy

The newest version!
/*******************************************************************************
 * Copyright 2015 Defense Health Agency (DHA)
 *
 * If your use of this software does not include any GPLv2 components:
 * 	Licensed under the Apache License, Version 2.0 (the "License");
 * 	you may not use this file except in compliance with the License.
 * 	You may obtain a copy of the License at
 *
 * 	  http://www.apache.org/licenses/LICENSE-2.0
 *
 * 	Unless required by applicable law or agreed to in writing, software
 * 	distributed under the License is distributed on an "AS IS" BASIS,
 * 	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * 	See the License for the specific language governing permissions and
 * 	limitations under the License.
 * ----------------------------------------------------------------------------
 * If your use of this software includes any GPLv2 components:
 * 	This program is free software; you can redistribute it and/or
 * 	modify it under the terms of the GNU General Public License
 * 	as published by the Free Software Foundation; either version 2
 * 	of the License, or (at your option) any later version.
 *
 * 	This program is distributed in the hope that it will be useful,
 * 	but WITHOUT ANY WARRANTY; without even the implied warranty of
 * 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * 	GNU General Public License for more details.
 *******************************************************************************/
package prerna.util;

import java.util.Comparator;

/**
 * Used to compare two numbers.
 */
public class StringNumericComparator implements Comparator{

	/**
	 * Compares two given arguments for order.
	 * @param str1 String		First argument to be compared.
	 * @param str2 String		Second argument to be compared.
	
	 * @return int				Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.
	 */
	@Override
	public int compare(String str1, String str2) {

		// extract numeric portion out of the string and convert them to int
		// and compare them, roughly something like this
		int num1=0;
		int num2=0;
		if(str1.indexOf(".")>0 & str2.indexOf(".")>0){
			try{
				num1 = Integer.parseInt(str1.substring(0, str1.indexOf(".")));
				num2 = Integer.parseInt(str2.substring(0, str2.indexOf(".")));
				if(num1 != num2) return num1 - num2;
			}catch(RuntimeException e){
				System.out.println("ignored");
			}
		}
		
		return str1.compareToIgnoreCase(str2);


	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy