
org.opentripplanner.util.IntUtils Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of otp Show documentation
Show all versions of otp Show documentation
The OpenTripPlanner multimodal journey planning system
/* This program is free software: you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation, either version 3 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.
You should have received a copy of the GNU General Public License
along with this program. If not, see . */
package org.opentripplanner.util;
import java.util.List;
import java.util.ArrayList;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class IntUtils {
private static final Logger LOG = LoggerFactory.getLogger(IntUtils.class);
public static final String POINT_PREFIX = "POINT(";
/** does this string appear to be a coordinate of some sort */
public static boolean looksLikeCoordinate(String str)
{
if(str != null && (str.contains(POINT_PREFIX) || str.matches("[\\s]*[0-9\\-.]+[,\\s]+[0-9\\-.]+[\\s]*")))
return true;
return false;
}
public static final double roundDouble(double d, int places) {
return Math.round(d * Math.pow(10, places)) / Math.pow(10, places);
}
/** take a string of ints (eg: 1,2,3,4), and return a List of Integers */
static public List asList(String str) {
return asList(str, ",");
}
/** take a string of ints (eg: 1[sep]2[sep]3[sep]4), and return a List of Integers */
static public List asList(String str, String sep) {
List retVal = new ArrayList();
try {
String[] s = str.split(sep);
for (int i = 0; i < s.length; i++) {
Integer k = null;
try {
k = Integer.parseInt(s[i].trim());
} catch (Exception m) {
}
if (k != null)
retVal.add(k);
}
} catch (Exception e) {
}
return retVal;
}
static public Integer getZipFromString(String zipStr) {
Integer retVal = null;
try {
retVal = getIntegerFromSubString(zipStr, "-");
if (retVal == null) {
retVal = getIntegerFromString(zipStr);
}
} catch (Exception e) {
retVal = null;
}
return retVal;
}
public static short getShortFromString(String input) {
return (short) getIntFromString(input);
}
public static int getIntFromString(String input) {
int retVal = 0;
Integer n = getIntegerFromString(input);
if (n != null)
retVal = n.intValue();
else if (input != null)
retVal = input.hashCode();
return retVal;
}
public static Integer getIntegerFromString(String input) {
try {
return new Integer(input);
} catch (Exception e) {
try {
String in = input.replaceAll("\\D", "");
return new Integer(in);
} catch (Exception ee) {
return null;
}
}
}
public static Integer getIntegerFromString(String input, Integer def) {
Integer retVal = getIntegerFromString(input);
if (retVal == null)
retVal = def;
return retVal;
}
public static Integer getIntegerFromSubString(String input, int len) {
String tmp = input.substring(len);
return getIntegerFromString(tmp.trim());
}
/**
* expect an Integer between prefix and suffix
*
* eg: if is this is our string "Hi there #2112, how are you" then a call of
* getIntegerFromSubString("Hi there #2112, how are you", "#", ","); will return 2112
*
* note: if " " is specified, and there is no space from prefix to end of line, then the whole
* line is evaluated
*
* @param target
* @param prefix
* @param suffix
* @return
*/
public static Integer getIntegerFromSubString(String target, String prefix, String suffix) {
if (target == null)
return null;
Integer retVal = null;
try {
String tmp = target;
if (prefix != null && target.contains(prefix)) {
// get the line from the end of the prefix to end of line
int sz = prefix.length();
int in = target.indexOf(prefix);
tmp = target.substring(in + sz);
}
if (tmp != null && suffix != null && target.contains(suffix)) {
// get suffix endpoint -- and compensate for whitespace / end of line (same thing)
int suf = tmp.indexOf(suffix);
if (suf <= 0 && suffix.equals(" "))
suf = tmp.length();
tmp = tmp.substring(0, suf);
retVal = IntUtils.getIntegerFromString(tmp.trim());
}
} catch (Exception e) {
// not too big a deal if this dies...just return null, as if we couldn't find an int
// there
LOG.info("Not a big deal that we couldn't find an int from substring...going to return null", e);
retVal = null;
}
return retVal;
}
public static Integer getIntegerFromSubString(String target, String suffix) {
return getIntegerFromSubString(target, null, suffix);
}
public static Double getDoubleFromString(String input) {
try {
return new Double(input);
} catch (Exception e) {
LOG.info("Not a big deal...going to return null", e);
return null;
}
}
public static long getLongFromString(String input) {
return getLongFromString(input, -111);
}
public static long getLongFromString(String input, long def) {
try {
return new Long(input);
} catch (Exception e) {
LOG.info("Not a big deal...going to return default value", e);
return def;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy