Java examples for java.lang:String Parse
parse Int and return default value if failed
/**/* ww w . j a v a 2 s. co m*/ * Copyright (C) 2008 10gen Inc. * * 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. */ //package com.java2s; public class Main { public static void main(String[] argv) { String s = "java2s.com"; int def = 42; System.out.println(parseIfInt(s, def)); } public static int parseIfInt(String s, int def) { if (s == null || s.length() == 0) return def; s = s.trim(); for (int i = 0; i < s.length(); i++) if (!Character.isDigit(s.charAt(i))) return def; return Integer.parseInt(s); } /** Turns a string into an int and returns a default value if unsuccessful. * @param s the string to convert * @param def the default value * @return the int value */ public static int parseInt(String s, int def) { return parseInt(s, def, null, true); } /** Turns a string into an int and returns a default value if unsuccessful. * @param s the string to convert * @param def the default value * @param lastIdx sets lastIdx[0] to the index of the last digit * @param allowNegative if negative numbers are valid * @return the int value */ public static int parseInt(String s, int def, final int[] lastIdx, final boolean allowNegative) { final boolean useLastIdx = lastIdx != null && lastIdx.length > 0; if (useLastIdx) lastIdx[0] = -1; if (s == null) return def; s = s.trim(); if (s.length() == 0) return def; int firstDigit = -1; for (int i = 0; i < s.length(); i++) { if (Character.isDigit(s.charAt(i))) { firstDigit = i; break; } } if (firstDigit < 0) return def; int lastDigit = firstDigit + 1; while (lastDigit < s.length() && Character.isDigit(s.charAt(lastDigit))) lastDigit++; if (allowNegative && firstDigit > 0 && s.charAt(firstDigit - 1) == '-') firstDigit--; if (useLastIdx) lastIdx[0] = lastDigit; return Integer.parseInt(s.substring(firstDigit, lastDigit)); } }