うるう年の判定

任意の西暦がうるう年かどうかを判定する方法をまとめます。 判定の仕様としては以下になります。 1.西暦年数が4で割り切れる年は原則として「うるう年」にする。 2.上記の例外として、西暦年数が100で割り切れる年は「平年」とする。 3.さらに例外として、西暦年数が400で割り切れる年は「うるう年」にする。 この規則に従うと2000年はうるう年になりますが、2100年、2200年は平年になりますね。 詳しくは以下の記事を参考にしてください。 http://www.astroarts.co.jp/news/1999/03/990325NAO246/index-j.shtml ソースコード public static void main(String[] args) {     for(int year = 1995; year < 2005; year++) {         System.out.println(year + "年:" + (isLeapYear(year) ? "うるう年" : "平年"));     } System.out.println("--------------------");     for(int year = 2095; year < 2105; year++) {         System.out.println(year + "年:" + (isLeapYe…

続きを読む

マルチバイトを含んだ文字列を指定バイト数で切る

マルチバイトを含んだ文字列を指定バイト数で切って、切った場合に三点リーダを付与する関数を作りました。 半端な場合(マルチバイト文字の途中で切れる)は、その文字ごと切り捨てます。 方法としては文字列を一文字ずつ取り出して、それがシングルバイトなのかマルチバイトなのかを判定します。 判定はStringクラスの getBytes(StandardCharsets.UTF_8).length が1ならシングルバイトとしています。 なお三点リーダも文字列と考慮するので、マルチバイト一文字分を含めても切る必要がない場合は何もしないものとします。 ソースコード public class StringUtils { /** * 文字列を指定バイト数で切って、切った場合三点リーダを付与する * @param value * @param byteLength * @return */ public static String truncate(String value, int byteLength) { if(value == null) { return null; } if(getByte(value) <= byteLength + 2) { return value; }…

続きを読む

ランダムな文字列を生成する

指定した文字列をランダムに並べ替えてハッシュ値を生成する方法をまとめます。 パスワードの生成などのときに便利です。 app/build.gradle compile group: "org.apache.commons", name: "commons-lang3", version: "3.4" ソースコード public class StringUtils { // ハッシュ値生成用の数字 public static final String NUMBER_STRING = "0123456789"; // ハッシュ値生成用の小文字 public static final String LOWER_STRING = "abcdefghijklmnopqrstuvwxyz"; // ハッシュ値生成用の大文字 public static final String UPPER_STRING = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; /** * ランダム文字列を生成する * 使用する文字列を引数で指定可能 * @param defaultLength * @param useNum …

続きを読む

WebViewのロード完了までプログレスダイアログを表示しておく方法

WebViewClientを継承したクラスを作って onPageFinished() メソッドなどを実装します。 生成したクラスは setWebViewClient でセットします。 ソースコード例 import android.app.ProgressDialog; import android.content.Intent; import android.net.Uri; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.webkit.WebView; import android.webkit.WebViewClient; public class MainActivity extends AppCompatActivity { ProgressDialog progressDialog; WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentV…

続きを読む

String型の文字列をSHA256ハッシュ変換する

String型の文字列をSHA256ハッシュ変換するサンプルです。 パッケージ import java.security.MessageDigest; ソースコード public static void main(String[] args) { String[] array = {"test1", "test2", "test3"}; for(String v : array) { System.out.pringln(v + " -> " + getSha256Hash(v)); } } /** * String -> SHA256ハッシュ変換 * @param baseString * @return */ public static String getSha256Hash(String baseString) { if(baseString == null) return null; byte[] cipherByte; try { MessageDigest messageDigest = MessageDigest.getInstance("SHA-256"); mes…

続きを読む

String型の文字列をBASE64変換する

AndroidでString型の文字列をBASE64変換する方法です。 パッケージ import android.util.Base64; ソースコード public static void main(String[] args) { String[] array = {"test1", "test2", "test3"}; for(String v : array) { System.out.pringln(v + " -> " + getBase64Encode(v)); } } /** * String -> BASE64変換 * @param baseString * @return */ public static String getBase64Encode(String baseString){ if(baseString == null) return null; try { byte[] encode = Base64.encode(baseString.getBytes(), Base64.DEFAULT); return new String(encode, "UTF-…

続きを読む

もっと見る

スポンサーリンク