Java

【Java】正規表現 ~ 数字/文字の出現回数を数える ~

■ はじめに 今回は、JavaのMatcher.find()を使って 数字/文字の出現回数を数えることを行う。 【1】サンプル 例1:パスワードの強度を測る * パスワードの強度を測るのに、数字/文字の出現回数を数えることがある それを正規表現を使って実現する NumericC…

【Java】 可変の設定を取り込むには ~ コマンドライン引数 / システムプロパティ ~

はじめに 可変の設定値をJavaプログラムに取り込むためには、以下のような方法が考えられる [1] 外部ファイル [2] DB [3] コマンドライン引数 [4] システムプロパティ 今回は「[3] コマンドライン引数」「[4] システムプロパティ」を扱う ■ コマンドライン引…

【Java】 日付・時間 について ~ 基本編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2014/11/18/235600 の続き。 ■ 現在時刻を取得する [1] Date を使用する場合 import java.util.Date; Date date = new Date(); // Tue Nov 18 23:53:23 JST 2014 System.out.println(date.toString()); [2…

【Java】Java で暗号化/複合化する ~Java1.8 標準を使用した場合 / IV使用編~

■ サンプル Main.java public class Main { public static void main(String[] args) { try { String algorithm = "AES"; // 暗号化方式「AES(Advanced Encryption Standard)」 String key = "1234567890123456"; // 暗号化方式「AES」の場合、キーは16文字…

【Java】セキュアなランダム文字列生成を考える

■ はじめに セキュアなランダム文字列生成を考える => 通常、java.util.Randomを利用すると思うが、偏りや再現性があるそうなので セキュアなランダム文字列生成することを考える 目次 【0】実装案 【1】java.util.UUID.randomUUID()を使用する 【2】java…

【Java】列挙型 / enum型 ~応用編 / Enumあれこれ ~

はじめに http://blogs.yahoo.co.jp/dk521123/32503689.html で、Enumのことを記載したが、 今回は、Enumに関連したJavaならではの実装方法を記載する ■ プロパティやメソッドの追加 * クラスのように、プロパティやメソッド(コンストラクタ)を追加できる …

【トラブル】【Java】OpenCV のトラブルシューティング

■ UnsatisfiedLinkErrorが発生する * 以下の「発生環境」において、UnsatisfiedLinkErrorが発生 * 発生箇所は、「System.loadLibrary(Core.NATIVE_LIBRARY_NAME);」実行時である 発生環境 * Java1.8 * Eclipse nano * OpenCV v2.4.14 エラー内容 Exception i…

【Java】 OpenCV ~ 基本編 / 画像編集 ~

■ はじめに * OpenCV の設定をおこなっておく(下記の関連記事を参照) https://dk521123.hatenablog.com/entry/2016/06/27/234046 ■ サンプルで使用する画像 http://www.cs.cmu.edu/~chuck/lennapg/playboy_backups/lena_lg.jpg ■ 画像を90度/180度/270度回…

【Java】コレクション ~ Deque 編~

Deque * スタックを実現するには、Stackではなく、両端キューであるDeque(デック) を使う Stack のAPI仕様 https://docs.oracle.com/javase/jp/6/api/java/util/Stack.html より抜粋 より完全で一貫性のある一連の LIFO スタックオペレーションが、 Deque …

【Java】 Java で、 音声ファイルを扱うには... ~ Clipクラス ~

サンプル import java.io.File; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Clip; public class Main { public static void main(String[] args) { load("etc/carenginestart2.wav"…

【Java】JavaでEmail ~ JavaMail / 添付ファイル ~

■ はじめに https://dk521123.hatenablog.com/entry/2016/07/16/222422 の続き。 今度は、添付ファイルを付けて送る。 ついでに、CCとBCCをつけてみた。 【1】ポイント * 言葉で説明するより、サンプルコードをみてもらった方が早い... 「■ サンプル」部分…

【Java】JavaでEmail ~ JavaMail / Text ~

【1】Java で、 Email を送る * (色々あるらしいが)JavaMail を利用する JavaMailの公式サイト http://www.oracle.com/technetwork/java/javamail/index.html https://javaee.github.io/javamail/ 【2】準備 1)JavaMailの設定 * 色々、方法はあるが、…

【Java】 OpenCV ~ 基本編 / 顔検出 ~

■ はじめに https://dk521123.hatenablog.com/entry/2016/06/27/234046 の続き。設定は、上記の関連記事を参照のこと。 ■ サンプル 使用する画像 http://www.cs.cmu.edu/~chuck/lennapg/playboy_backups/lena_lg.jpg 顔検出 OpenCV v3.1系 import org.opencv…

【Java】列挙型 / enum型 ~応用編 / Enumのソート ~

サンプル * Enumを逆順でソートさせる(もっとスマートにやりたいが) SignalType * Enum import java.util.Collections; import java.util.Comparator; import java.util.List; public enum SignalType { None(-2), Red(-1), Yellow(0), Green(1); public sta…

【Java】正規表現 ~ 複雑な文字列置き換え ~

■ はじめに 今回は、Javaの replaceFirst / replaceAll を使って 複雑な文字列置き換えを行う。 【1】複雑な文字列置き換え 1)replaceFirst / replaceAll * 正規表現を使って、文字列置き換えることにより、複雑な処理が可能になる * replaceAll()は、不…

【Java】 列挙型 / enum型 ~ 応用編 / EnumSet・EnumMap ~

■ EnumSet * ビット和なフラグを使いたい時に使用 サンプル CountryType.java import java.util.EnumSet; public enum CountryType { None, JAPAN, CHINA, INDIA, USA, MEXICO, UK, ITALY, FRENCH, BRAZIL; private static EnumSet<CountryType> asias; static { asias = </countrytype>…

【Java】URLからファイルをダウンロードするには...

サンプル Main.java Yahooのロゴを落としてくる import java.io.BufferedOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.net.HttpURLConnecti…

【Java】Java で暗号化/複合化する ~Java1.8 標準を使用した場合~

■ はじめに https://blogs.yahoo.co.jp/dk521123/32780473.html で、暗号化/複合化を実装したが、 Java1.8 標準で、Base64のエンコード・デコードが導入されているそうなので使ってみる ■ javax.crypto.Cipher.getInstance() について https://docs.google.c…

【Java】 日付・時間 について ~ 入門編 ~

■ はじめに Java の 日付・日時 について、まとめる 【1】日付に関するクラス 1)Javaプログラム [1-1] java.util.Date => 日付(YYYY/MM/DD)を扱う際に使用 https://docs.oracle.com/javase/jp/7/api/java/util/Date.html [1-2] java.util.Calendar => 日…

【Java】 配列 に関するあれこれ

配列いろいろ ■ 配列の内容を出力するには * Arrays.deepToString() を使う Object[] values = ...; Arrays.deepToString(values); ■ 配列かどうか判定するには * getClass().isArray() で判定する Object value = ...; if (value.getClass().isArray()) { S…

【Java】 数値 に関するあれこれ

データ型 プリミティブ byte、short、int、long、float、double 注意 * 数値リテラルの整数の値はint型の値として扱われるので、 long型の数値として扱うには、以下のようにする long = 30L; * 数値リテラルの浮動小数点数の値はdouble型の値として扱われる…

【Ant】 Javaコンパイル

■ Javaコンパイル http://blogs.yahoo.co.jp/dk521123/33973954.html でやってるが復習として。 サンプル <project basedir="." default="compile" name="SampleJavaCodes"> <property name="class.path" value="./class" /> <property name="java.path" value="./src" /> </property></property></project>

【Java】 MessageFormat ( vs String.format() )

■ はじめに http://blogs.yahoo.co.jp/dk521123/13687446.html にある String.format() は、物凄く活用できるメソッドであるが 以下のような問題点があり、その代わりになるのが MessageFormat である String.format() の問題点 * 「%」単体で使えない → 「%…

【Java】OS (Windows - Linux)依存しないようにするには...

■ ディレクトリ・ファイル名のパス区切り Case1 File.separator Case2 System.getProperty("file.separator") ■ 改行コード Case1 File.separator Case2 System.getProperty("line.separator") ■ パスの区切り Case1 File.pathSeparator Case2 System.getPro…

【Java】ハッシュで暗号化する

■ はじめに Java の ハッシュについて、メモ。 目次 【1】ハッシュ 【2】MessageDigest・API仕様 【3】サンプル 【1】ハッシュ * 以下の関連記事を参照のこと ハッシュ / Hash https://dk521123.hatenablog.com/entry/2022/09/14/000000 【2】MessageDi…

【Java】インターフェース・interface

■ 初めに * C# のインターフェース(以下の関連記事)とは、異なるので、メモっとく。 http://blogs.yahoo.co.jp/dk521123/30209838.html ■ インターフェースで定義できるもの * メソッド(定義のみ) * 定数 // ★ C#との違い ★ * デフォルト実装 (from Java8…

【Mock】 Mockito ~ 入門編 ~

■ はじめに Java の モック「Mockito」について扱う 目次 【1】個人的な感想 【2】メリット・デメリット 【3】設定手順 【4】サンプル 例1:シンプルなサンプル 【1】個人的な感想 * 使いやすい(少しいじれば簡単なことは割とすぐできる) 【2】メリッ…

【Java】JMockit ~入門編~

【1】設定手順 1)JMockit をダウンロードする * 下記URLから JMockit (jmockit-X.X.zip)を取得する。 => 下記のサイトからリンク「current release」を押下して取得する http://jmockit.googlecode.com/svn/trunk/www/gettingStarted.html 2)ダウンロ…

【Java】【XML】xPath ~XMLの参照・書き換え~

■ 用語 XPath (XML Path Language) * XML から、条件に適合した部分の要素を取り出すための仕様 => 詳細は、以下の関連記事を参照のこと https://dk521123.hatenablog.com/entry/2015/06/06/100247 ロケーションパス * ルートノードを起点としてノード指定方…

【Java】 File の Close処理について ~try-with-resources~

■ try-with-resources * C#の using のように、close()をしなくても自動的にclose処理をしてくれる * Java 1.7から使用可能 ■ closeが一つの場合 構文 try (XxxxxStream stream = new XxxxxStream()) { // something } catch (Exception ex) { } サンプル 一…