JAVA > ちょっとした自作関数

あるとそこそこ便利?な関数


不要小数点削除関数

   /**
    * 小数点を消すことができれば消す.
    * 
    * <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));
   }

replaceAll自作

   /**
    * 置換関数.<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="&amp;" ret="AA.BB&amp;C&amp;C"
    * value="AA.BB&C&C",old_str=".",new_str=" " ret="AA BB&C&C"
    * value="AA BB C&C",old_str=" ",new_str="&nbsp;" ret="AA&nbsp;BB&nbsp;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();
   }
名前:
コメント:
最終更新:2008年06月25日 17:23