Stringクラスを使用して文字列の検索をします。
public stati void main(String[] args) { "abcdefg".indexOf("z"); // -1 "abcdefg".indexOf("a"); // 0 }
こんな感じです。取得する位置(int)は「0」から始まる数値が返されます。
ƒ
Javaを実装するときのワンポイントレッスン的な記事
全てではありませんが、よく使うものをあげます。
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("計算式ではない"); }
実際に動かして見たとき
json-pathの追加方法
ここのURLからpom.xmlファイルをコピー or ダウンロードします。
Mevenプロジェクトにあるpom.xmlを書き換えるか、ダウンロードしたPOMに記載されている内容を追記する。
Mavenインストールする
お疲れ様でした。
通常のJavaプロジェクトをMevenプロジェクト化します
プロジェクトを右クリック→Convert to Meven Projectをクリックします。
お疲れ様でした。
ライブラリの追加=JARファイルの追加の認識です。
直接ビルドパスを追加してやります。JSONライブラリのダウンロードします。
作成したプロジェクトがMavenではないのでJARをビルドパスに追加します。
今回はサンプルとして「json-path-2.1.0.jar」を追加します。
1:プロジェクトを右クリック→プロパティをクリック
2:プロジェクトのプロパティを開く
3:ビルドパスを選択→外部JARを追加(Add External JARs)ボタンをクリック
4:追加するJARファイルを選択する
5:プロジェクトに追加されたことを確認
jsonで遊ぼう!さらに体も鍛える(笑)
前回、Pythonで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); } } }
コンソール画面、ターミナルから「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」コマンドは動かない・・・