atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
wiki @Wiki
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
wiki @Wiki
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
wiki @Wiki
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • wiki @Wiki
  • UtillView

wiki @Wiki

UtillView

最終更新:2006年05月19日 23:45

匿名ユーザー

- view
だれでも歓迎! 編集

package jp.co.nickel.online.account.common.util;


/**
* 画面表示ユーティリティクラス。<br>
* <br>
* 以下の機能を提供します。<br>
* <ul>
* <li>「&lt;,&gt;,&amp;,半角空白"」の変換</li>
* <li>改行コードの変換</li>
* <li>数値のカンマ編集</li>
* <li>金額の小数点編集</li>
* <li>String型の日付をYYYY/MM/DD形式で取得</li>
* <li>String型の日付をYYYY年MM月DD日形式で取得</li>
* <li>西暦→和暦変換</li>
* <li>和暦→西暦変換</li>
* <li>半角カタカナを全角カタカナに変換</li>
* <li>特殊文字のエンコードを変換</li>
* <li>文字列を指定桁数で改行したテキストを取得</li>
* </ul>
*/
public class UtilView {
 
  /**
   * デフォルトコンストラクタ。
   */
  private UtilView(){
  }
 
  /**
   * 特殊文字「&lt;」「&gt;」「&amp;」「&quot;」「半角空白」をHTML表示用に変換する。<br>
   * <br>
   * 引数が不正だった場合は null を返します。<br>
   * <br>
   * @param  data  変換前文字列
   * @return  String  変換後文字列
   */
  public static String toHTMLEncode(String data){
    // null チェック
    if(UtilString.isNull(data))
      return null;
   
    // 文字列長を取得
    int len = data.length();
   
    // バッファ作成
    StringBuffer fil = new StringBuffer(len);
   
    // 変換
    for(int i=0; i<len; i++){
      char c = data.charAt(i);
      switch (c){
        case '<' :
          fil.append("&lt;");
          break;
        case '>' :
          fil.append("&gt;");
          break;
        case '"' :
          fil.append("&quot;");
          break;
        case '&' :
          fil.append("&amp;");
          break;
        case ' ' :
          fil.append("&nbsp;");
          break;
        default :
          fil.append(c);
          break;
      }
    }
    return fil.toString();
  }

  /**
   * 改行コードを&lt;BR&gt;タグに変換する。<br>
   * <br>
   * 引数が不正だった場合は null を返します。<br>
   * <br>
   * @param  data  変換前文字列
   * @return  String  変換後文字列
   */
  public static String toBreakTag(String data){
    // null チェック
    if(UtilString.isNull(data))
      return null;
   
    // 文字列長を取得
    int len = data.length();
   
    // 文字列長サイズのバッファを作成
    StringBuffer fil = new StringBuffer(len);
   
    for(int i=0; i<len; i++){
      char c = data.charAt(i);
      if(c == UtilConstants.C_BREAK_YEN_R){
        i++;
        c = data.charAt(i);
        if (c == UtilConstants.C_BREAK_YEN_N){
          fil.append(UtilConstants.S_TAG_BREAK);
        }
        //\r だけ存在する場合はその値は切り捨てる
      }else{
        fil.append(c);
      }
    }
    return fil.toString();
  }

  /**
   * 数値 data にカンマを付加します。<br>
   * <br>
   * 小数点やマイナスの値をサポートします。<br>
   * 引数が不正だった場合は null を返します。<br>
   * <br>
   * @param  data  変換前文字列
   * @return String 変換後文字列
   */
  public static String toCurNew(int data){
    return toCurNew(String.valueOf(data));
  }

  /**
   * 数値 data にカンマを付加します。<br>
   * <br>
   * 小数点やマイナスの値をサポートします。<br>
   * 引数が不正だった場合は null を返します。<br>
   * <br>
   * @param  data  変換前文字列
   * @return String 変換後文字列
   */
  public static String toCurNew(String data){
    // 先頭の 0 を取り除く
    // データが不正だった場合は null が返ってくる
    data = UtilString.cnvNumber(data);
   
    // null チェック
    if(UtilString.isNull(data))
      return null;
   
    int len = data.length();
    int x = 0;
   
    String buf = new String();
    for(int i = 0; i < len; i++){
      buf = buf + data.substring(i, i+1);
      x++;
      if ((len - x) % 3 == 0 && (len - x) != 0) {
        buf = buf + UtilConstants.C_HALF_COMMA;
      }
    }
    return buf;
  }
  /**
   * 数値 data にカンマを付加します。<br>
   * <br>
   * 小数点やマイナスの値をサポートします。<br>
   * 引数が不正だった場合は null を返します。<br>
   * <br>
   * @param  data  変換前文字列
   * @return  String  変換後文字列
   */
  public static String toCur(String data){
    // 先頭の 0 を取り除く
    // データが不正だった場合は null が返ってくる
    data = UtilString.cnvNumber(data);
   
    // null チェック
    if(UtilString.isNull(data))
      return null;
   
    int len = data.length();
    int x = 1;
   
    String buf = UtilConstants.S_EMPTY;
    for(int i = len; i > 0; i--){
      char c = data.charAt(i-1);
      if(c == UtilConstants.C_HALF_PERIOD){
        buf = UtilConstants.S_EMPTY;
          for (int y=len; y>i; y--){
            buf = data.charAt(y-1) + buf;
          }
        x = 0;
      }
      if(x == 3 && i-1 > 0 && c != UtilConstants.C_HALF_HYPHEN){
        if(data.charAt(i-2) != UtilConstants.C_HALF_HYPHEN){
          buf = UtilConstants.C_HALF_COMMA + c + buf;
          x = 0;
        }else{
          buf = c + buf;
        }
      }else{
        buf = c + buf;
      }
      x++;
    }
    return buf;
  }

  /**
   * 数値 data にカンマを付加します。<br>
   * <br>
   * 小数点やマイナスの値をサポートします。<br>
   * 引数が不正だった場合は null を返します。<br>
   * <br>
   * @param  data  変換前文字列
   * @return  String  変換後文字列
   */
  public static String toCur(int data){
    return toCur(String.valueOf(data));
  }

  /**
   * 数値 data にカンマを付加します。<br>
   * <br>
   * 小数点やマイナスの値をサポートします。<br>
   * 引数が不正だった場合は null を返します。<br>
   * <br>
   * @param  data  変換前文字列
   * @return  String  変換後文字列
   */
  public static String toCur(float data){
    return toCur(String.valueOf(data));
  }

  /**
   * 数値 data にカンマを付加します。<br>
   * <br>
   * 小数点やマイナスの値をサポートします。<br>
   * 引数が不正だった場合は null を返します。<br>
   * <br>
   * @param  data  変換前文字列
   * @return  String  変換後文字列
   */
  public static String toCur(double data){
    return toCur(String.valueOf(data));
  }

  /**
   * 日付 data にフォーマットを適用します。<br>
   * <br>
   * data が4桁の場合は MM/dd 形式を適用します。<br>
   * data が6桁の場合は yyyy/MM 形式を適用します。<br>
   * data が8桁の場合は yyyy/MM/dd 形式を適用します。<br>
   * data が14桁の場合は yyyy/MM/dd 形式を適用します。<br>
   * 半角スラッシュ混合データもサポートします。<br>
   * 引数が不正だった場合は null を返します。<br>
   * <br>
   * @param  data  変換前文字列
   * @return  String  変換後文字列
   */
  public static String toDateE(String data){
    // null チェック
    if(UtilString.isNull(data))
      return null;
   
    // 有効データチェック
    if(!UtilString.isValid(data))
      return null;
   
    // スラッシュが入っている場合はスラッシュを取り除く
    data = UtilString.replace(data, UtilConstants.S_SLASH, UtilConstants.S_EMPTY);
   
    switch(data.length()){
      // 4桁の場合
      case 4:
        return data.substring(0, 2) + UtilConstants.S_SLASH + data.substring(2, 4);
      // 6桁の場合
      case 6:
        return data.substring(0,4) + UtilConstants.S_SLASH + data.substring(4,6);
      // 8桁の場合
      case 8:
        return data.substring(0,4) + UtilConstants.S_SLASH + data.substring(4,6) + UtilConstants.S_SLASH + data.substring(6,8);
      // 14桁の場合
      case 14:
        return data.substring(0,4) + UtilConstants.S_SLASH + data.substring(4,6) + UtilConstants.S_SLASH + data.substring(6,8);
      // それ以外の場合
      default:
        return null;
    }
  }

  /**
   * 日付 data にフォーマットを適用します。<br>
   * <br>
   * data が4桁の場合は MM月DD日 形式を適用します。<br>
   * data が6桁の場合は YYYY年MM月 形式を適用します。<br>
   * data が8桁の場合は YYYY年MM月DD日 形式を適用します。<br>
   * data が14桁の場合は YYYY年MM月DD日 形式を適用します。<br>
   * 半角スラッシュ混合データもサポートします。<br>
   * 引数が不正だった場合は null を返します。<br>
   * <br>
   * @param  data  変換前文字列
   * @return  String  変換後文字列
   */
  public static String toDateJ(String data){
    // null チェック
    if(UtilString.isNull(data))
      return null;
   
    // 有効データチェック
    if(!UtilString.isValid(data))
      return null;
   
    // スラッシュが入っている場合はスラッシュを取り除く
    data = UtilString.replace(data, UtilConstants.S_SLASH, UtilConstants.S_EMPTY);
   
    switch(data.length()){
      // 4桁の場合
      case 4:
        return data.substring(0,2) + UtilConstants.S_FULL_MONTH + data.substring(2,4) + UtilConstants.S_FULL_DAY;
      // 6桁の場合
      case 6:
        return data.substring(0,4) + UtilConstants.S_FULL_YEAR + data.substring(4,6) + UtilConstants.S_FULL_MONTH;
      // 8桁の場合
      case 8:
        return data.substring(0,4) + UtilConstants.S_FULL_YEAR + data.substring(4,6) + UtilConstants.S_FULL_MONTH + data.substring(6,8) + UtilConstants.S_FULL_DAY;
      // 14桁の場合
      case 14:
        return data.substring(0,4) + UtilConstants.S_FULL_YEAR + data.substring(4,6) + UtilConstants.S_FULL_MONTH + data.substring(6,8) + UtilConstants.S_FULL_DAY;
      default:
        return null;
    }
  }

  /**
   * 文字列 data 中の特殊文字のエンコーディングを変換します。<br>
   * <br>
   * MS932(CP932) の UNICODE を SJIS(JIS) に変換します。<br>
   * 処理対象文字は以下の通りです。<br>
   * <ul>
   * <li>『~』</li>
   * <li>『∥』</li>
   * <li>『-』</li>
   * <li>『¢』</li>
   * <li>『£』</li>
   * <li>『¬』</li>
   * <li>『〓』</li>
   * </ul>
   * 上記の文字以外は変換しません。<br>
   * 引数が不正だった場合は null を返します。<br>
   * <br>
   * @param  data  処理の対象の文字列
   * @return  result  変換後の文字列
   */
  public static String cnvEncodingSJIS(String data) {
   
    // null チェック
    if(UtilString.isNull(data)){
      return null;
    }
   
    StringBuffer result = new StringBuffer();
    char cDest = 0x0000;
   
    // 変換対象の文字列を文字数分調べる
    for(int i = 0; i < data.length(); i++){
     
      cDest = data.charAt( i );
     
      switch( cDest ) {
        case 0xff5e:  // ~ [FULLWIDTH TILDE] -> [WAVE DASH]
          cDest = 0x301c;
          break;
        case 0x2225:  // ∥ [PARALLEL TO] -> [DOUBLE VERTICAL LINE]
          cDest = 0x2016;
          break;
        case 0xff0d:  // - [FULLWIDTH HYPHEN-MINUS] -> [MINUS SIGN]
          cDest = 0x2212;
          break;
        case 0xffe0:  // ¢ [FULLWIDTH CENT SIGN] -> [CENT SIGN]
          cDest = 0x00a2;
          break;
        case 0xffe1:  // £ [FULLWIDTH POUND SIGN] -> [POUND SIGN]
          cDest = 0x00a3;
          break;
        case 0xffe2:  // ¬ [FULLWIDTH NOT SIGN] -> [NOT SIGN]
          cDest = 0x00ac;
          break;
        // 『〓』の場合は『=』へ変換する
        case 0x3013:  // 〓 [FULLWIDTH GETA MARK] -> [Equal]
          cDest = 0xff1d;
          break;
      }
      result.append(cDest);
    }
   
    return result.toString();
  }

  /**
   * 文字列 data 中の特殊文字のエンコーディングを変換します。<br>
   * <br>
   * SJIS(JIS) を MS932(CP932) の UNICODE に変換します。<br>
   * 処理対象文字は以下の通りです。<br>
   * <ul>
   * <li>『~』</li>
   * <li>『∥』</li>
   * <li>『-』</li>
   * <li>『¢』</li>
   * <li>『£』</li>
   * <li>『¬』</li>
   * <li>『〓』</li>
   * </ul>
   * 上記の文字以外は変換しません。<br>
   * 引数が不正だった場合は null を返します。<br>
   * <br>
   * @param  data  処理の対象の文字列
   * @return  result  変換後の文字列
   */
  public static String cnvEncodingUNICODE(String data) {
   
    //引数nullチェック
    if(UtilString.isNull(data)){
      return null;
    }
   
    StringBuffer result = new StringBuffer();
    char cDest = 0x0000;
   
    // 変換対象の文字列を文字数分調べる
    for(int i = 0; i < data.length(); i++){
     
      cDest = data.charAt( i );
     
      switch( cDest ) {
        case 0x301c:  // ~ [FULLWIDTH TILDE] -> [WAVE DASH]
          cDest = 0xff5e;
          break;
        case 0x2016:  // ∥ [PARALLEL TO] -> [DOUBLE VERTICAL LINE]
          cDest = 0x2225;
          break;
        case 0x2212:  // - [FULLWIDTH HYPHEN-MINUS] -> [MINUS SIGN]
          cDest = 0xff0d;
          break;
        case 0x00a2:  // ¢ [FULLWIDTH CENT SIGN] -> [CENT SIGN]
          cDest = 0xffe0;
          break;
        case 0x00a3:  // £ [FULLWIDTH POUND SIGN] -> [POUND SIGN]
          cDest = 0xffe1;
          break;
        case 0x00ac:  // ¬ [FULLWIDTH NOT SIGN] -> [NOT SIGN]
          cDest = 0xffe2;
        break;
        // 『〓』の場合は『=』へ変換する
        case 0x3013:  // 〓 [FULLWIDTH GETA MARK] -> [Equal]
          cDest = 0xff1d;
        break;

      }
      result.append(cDest);
    }
   
    return result.toString();
  }
 
  /**
   * 文字列 data を指定した桁で改行したテキストを取得します。<br>
   * <br>
   * 引数が不正の場合は null を返します。
   * <br>
   * @param  data  基となる文字列
   * @param  size  桁
   * @param  br    改行コード(\n, \r\n, &lt;br&gt; etc...)
   * @return  result  改行されたテキスト
   */
  public static String getBreakText(String data, int size, String br){
    // null チェック
    if(UtilString.isNull(data) || UtilString.isNull(br))
      return null;
   
    // 桁チェック
    if(size < 1)
      return null;
   
    StringBuffer result = new StringBuffer();
   
    // 改行後のテキストの行数を取得
    int line = data.length() / size;
   
    // 最終行を加算
    if(data.length() % size > 0)
      line++;
   
    // テキスト作成
    for(int i = 0; i < line; i++){
      if(i == line - 1){
        result.append(data.substring(i * size, data.length()));
      }else{
        result.append(data.substring(i * size, i * size + size));
        result.append(br);
      }
    }
   
    return result.toString();
  }
 
}

「UtillView」をウィキ内検索
LINE
シェア
Tweet
wiki @Wiki
記事メニュー
メニュー
  • トップページ
  • メニュー
    • java
    • 型変換
    • 日付
    • 共通関数
    • 技術者の心得
記事メニュー2
最近更新されたページ
  • 6829日前

    技術者の心得
  • 6829日前

    メニュー
  • 7015日前

    トップページ
  • 7015日前

    UtillView
  • 7016日前

    共通関数
  • 7016日前

    日付
  • 7016日前

    型変換
  • 7016日前

    java
もっと見る
最近更新されたページ
  • 6829日前

    技術者の心得
  • 6829日前

    メニュー
  • 7015日前

    トップページ
  • 7015日前

    UtillView
  • 7016日前

    共通関数
  • 7016日前

    日付
  • 7016日前

    型変換
  • 7016日前

    java
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  2. MadTown GTA (Beta) まとめウィキ
  3. R.E.P.O. 日本語解説Wiki
  4. シュガードール情報まとめウィキ
  5. ソードランページ @ 非公式wiki
  6. ヒカマーWiki
  7. AviUtl2のWiki
  8. シミュグラ2Wiki(Simulation Of Grand2)GTARP
  9. Dark War Survival攻略
  10. 2025.3.15 小田急線運用表
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  5. 初音ミク Wiki
  6. 検索してはいけない言葉 @ ウィキ
  7. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  8. 発車メロディーwiki
  9. 英傑大戦wiki
  10. モンスター烈伝オレカバトル2@wiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 参加者一覧 - ストグラ まとめ @ウィキ
  2. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  3. べりはぴ - ストグラ まとめ @ウィキ
  4. おくら - クッキー☆解説Wiki
  5. 機体一覧 - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  6. 鬼レンチャン(レベル順) - 鬼レンチャンWiki
  7. 危険度7 - 検索してはいけない言葉 @ ウィキ
  8. 868 - ストグラ まとめ @ウィキ
  9. ガンダム・エアリアル(改修型) - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  10. ミッション攻略 - 地球防衛軍6 @ ウィキ
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.