0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Javaで文字列とバイト配列の相互変換を行うユーティリティクラス

0
Posted at

StringByteUtil.java

import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;

public class StringByteUtil {

    // デフォルト文字エンコーディング
    private static final Charset DEFAULT_CHARSET = StandardCharsets.UTF_8;

    /**
     * 文字列をバイト配列に変換します。
     *
     * @param str 変換する文字列
     * @param charsetName 使用する文字セット名(例: "UTF-8", "Shift_JIS")
     * @return バイト配列(null入力時はnull)
     */
    public static byte[] toBytes(String str, String charsetName) {
        if (str == null) return null;
        Charset charset = getCharset(charsetName);
        return str.getBytes(charset);
    }

    /**
     * バイト配列を文字列に変換します。
     *
     * @param bytes 変換するバイト配列
     * @param charsetName 使用する文字セット名
     * @return 文字列(null入力時はnull)
     */
    public static String toString(byte[] bytes, String charsetName) {
        if (bytes == null) return null;
        Charset charset = getCharset(charsetName);
        return new String(bytes, charset);
    }

    /**
     * 文字セット名から Charset を取得します。
     * 無効な名
     * 前が指定された場合はデフォルト UTF-8 を使用します。
     *
     * @param charsetName 文字セット名
     * @return Charset インスタンス
     */
    private static Charset getCharset(String charsetName) {
        if (charsetName == null || charsetName.isEmpty()) {
            return DEFAULT_CHARSET;
        }
        try {
            return Charset.forName(charsetName);
        } catch (IllegalArgumentException e) {
            System.err.println("指定された文字コードが無効です: " + charsetName + "。UTF-8を使用します。");
            return DEFAULT_CHARSET;
        }
    }
}

実行例

String original = "こんにちは世界";
String charset = "Shift_JIS";

byte[] bytes = StringByteUtil.toBytes(original, charset);
String restored = StringByteUtil.toString(bytes, charset);

System.out.println("元の文字列: " + original);
System.out.println("復元された文字列: " + restored);
元の文字列: こんにちは世界
復元された文字列: こんにちは世界
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?