あるとそこそこ便利?な関数
/** * 小数点を消すことができれば消す. * * <PRE> * String s = ""; * "1.0"; * tem.out.println(s + "→" + Conv2Prop.delScale(s)); * "1.001"; * tem.out.println(s + "→" + Conv2Prop.delScale(s)); * "1"; * tem.out.println(s + "→" + Conv2Prop.delScale(s)); * "001.0"; * tem.out.println(s + "→" + Conv2Prop.delScale(s)); * "100"; * tem.out.println(s + "→" + Conv2Prop.delScale(s)); * </PRE> * * @param str 文字列(数値でない場合は何も行わない) * @return 変換後文字列数値 */ public static String delScale(String str){ if(isNumeric(str)){ BigDecimal bd = new BigDecimal(str); if(bd.doubleValue() == bd.intValue()){ return bd.setScale(0).toPlainString(); } } return str; }
/** * 数値型となりえるか. * * @param str * @return true:数値型となりえる false:数値型となりえない */ public static boolean isNumeric(String str){ try{ new BigDecimal(str); return true; } catch (Exception e) { return false; } }
NULLと空文字を同一視
/** * ブランクチェック. * * @param str * @return true:null、もしくはブランク false:値あり */ public static boolean isNull(String str){ return (str == null || "".equals(str)); }
/** * 置換関数.<br> * ※java1.3にはreplaceAllが無い為、自作.<br> * * <PRE> * value="AAAABBCCCDDDAAABCDDDCC",old_str="B",new_str="BBB" ret="AAAABBBBBBCCCDDDAAABBBCDDDCC" * value="AABBCC",old_str="B",new_str="BBB" ret="AABBBBBBCC" * value="AABBCC",old_str="BB",new_str="BBB" ret="AABBBCC" * value="AABBCC",old_str="BBB",new_str="BBB" ret="AABBCC" * value="AABBCCBB",old_str="BB",new_str="" ret="AACC" * value="AABBCC",old_str="BB",new_str="" ret="AACC" * value="AABBCC",old_str="",new_str="" ret="AABBCC" * value="AA.BB&C&C",old_str="&",new_str="&" ret="AA.BB&C&C" * value="AA.BB&C&C",old_str=".",new_str=" " ret="AA BB&C&C" * value="AA BB C&C",old_str=" ",new_str=" " ret="AA BB C&C" * </PRE> * @param value 対象文字列 * @param old_str 置換旧文字列 * @param new_str 置換新文字列 * @return 置換後文字列 */ public static String replaceAll(String value, String old_str, String new_str){ //nullチェック if(value == null || old_str == null || "".equals(old_str)){ return value; } StringBuffer ret = new StringBuffer(); int old_len = old_str.length(); int from_index = 0; int index = 0; boolean loop_flg = true; while(loop_flg){ index = value.indexOf(old_str, from_index); if(-1 < index){ ret.append(value.substring(from_index, index)); ret.append(new_str); from_index = index + old_len; } else{ ret.append(value.substring(from_index)); loop_flg = false; } } return ret.toString(); }