Java String 文字列検索〜ワンポイントレッスン〜

Stringクラスを使用して文字列の検索をします。

public stati void main(String[] args) {
   "abcdefg".indexOf("z"); // -1
   "abcdefg".indexOf("a"); // 0
}

こんな感じです。取得する位置(int)は「0」から始まる数値が返されます。


Java String 正規表現〜ワンポイントレッスン〜

Stringクラスを使用しての正規表現

全てではありませんが、よく使うものをあげます。

<文字列を削除>

replaceAll(正規表現, 変更文字);

public static void main(String[] args) {
   "a1a2a3B4B5B".replaceAll("[1-5]",""}; // aaaBBB
   "a1a2a3B4B5B".replaceAll("a[1-5]",""}; // B4B5B
   "a1a2a3B4B5B".replaceAll("[a-zA-Z]",""}; // 12345
}

matches(正規表現)は上と同じような処理をするのですがTrue or Falseを返却します。

public static void main(String[] args) {
   "a1a2a3B4B5B".matches("[1-5]"}; // True
   "a1a2a3B4B5B".matches("a[1-5]"}; //True
   "a1a2a3B4B5B".matches("[a-zA-Z]"}; //True
   "a1a2a3B4B5B".matches("[6-9]"}; //False
}

 

文字列の判定

文字列が「数字」 + 「四則計算の記号」 + 「数字」の形担っているか判定する

String inStr = "1 + 1";
if (inStr.matches("[0-9].*[0-9]")) {
   System.out.println("計算部分の文字列");
} else {
   System.out.println("計算式ではない");
}

実際に動かして見たとき



Java Eclipse ワンポイントレッスン〜Maveでのライブラリ追加〜

json-pathの追加方法

ここのURLからpom.xmlファイルをコピー or ダウンロードします。

Mevenプロジェクトにあるpom.xmlを書き換えるか、ダウンロードしたPOMに記載されている内容を追記する。


Mavenインストールする

お疲れ様でした。

Java Eclipse ワンポイントレッスン〜プロジェクトのMeven化〜

通常のJavaプロジェクトをMevenプロジェクト化します

プロジェクトを右クリック→Convert  to Meven Projectをクリックします。

お疲れ様でした。

Java Eclipse ワンポイントレッスン〜ライブラリの追加〜

ライブラリの追加=JARファイルの追加の認識です。

直接ビルドパスを追加してやります。JSONライブラリのダウンロードします。

作成したプロジェクトがMavenではないのでJARをビルドパスに追加します。

今回はサンプルとして「json-path-2.1.0.jar」を追加します。

1:プロジェクトを右クリック→プロパティをクリック

2:プロジェクトのプロパティを開く

3:ビルドパスを選択→外部JARを追加(Add External JARs)ボタンをクリック


4:追加するJARファイルを選択する

5:プロジェクトに追加されたことを確認

jsonで遊ぼう!さらに体も鍛える(笑)

 

Java MeCab 〜Javaで品詞分解してみよう〜

イントロダクション

前回、PythonでMeCabを使える様にセットアップしました。今回はJavaでも使える様にします。

MeCab Javaから使うには?

ここのページから最新のファイルをダウンロードします。

日付の部分が最新のものを洗濯してダウンロードしてください。

そして展開したら、辞書をUTF-8でビルドします。

などなど。。。使用方法があるのですが「Javaから直接コマンド叩いた方が早くね?」と思いましたので「Runtime.exe(コマンド)」でいこうと思います。作成したコードは以下になります。

public class AutoBlogPoster {
	public static void main(String[] args) throws Exception{
		String[] cmd = {"/bin/sh", "-c", "echo マイクロソフトバンク | /usr/local/mecab/bin/mecab -O simple"};
		Process process = Runtime.getRuntime().exec(cmd);
		BufferedReader buf = new BufferedReader(new InputStreamReader(process.getInputStream()));
		String line = "";
		while( (line = buf.readLine()) != null) {
			System.out.println(line);
		}
	}
}


Java ワンポイントレッスン〜Javaからコマンドを叩く〜

コンソール画面、ターミナルから「echo "タイガーマスク" | echo ": 伊達直人"」とコマンドを叩くのと同様なことをJavaで行う

public static void main(String[] args) throws Exception{
	String[] cmd = {"/bin/sh", "-c", ¥"タイガーマスク¥" | echo ¥": 伊達直人¥""};
	Process process = Runtime.getRuntime().exec(cmd);
	BufferedReader buf = new BufferedReader(new InputStreamReader(process.getInputStream()));
	String line = "";
	while( (line = buf.readLine()) != null) {
		System.out.println(line);
	}
}

こんな感じに、シェル経由で実行してやればオッケー

ただし、ユーザー指定の環境変数を使用しているコマンドはパスを指定してやらないと動かない。。。

<例>

「echo」コマンドは動くけど新たにインストールした「mecab」コマンドは動かない・・・