- 1. Javaを使用してPDF内の指定されたテキストを検索して置換する方法
- 2. 小ネタ:IntelliJでCSVファイルをテーブル形式で参照する
- 3. DBからselectした複数レコードの先頭レコードだけ取得する方法。
- 4. スッキリできるJava入門 実践編第3版 Mavenの利用について(P387)
- 5. KarateのテストでDBUnitを使ってDBにテストデータを入れる
- 6. 【LeetCode】アルゴリズム体操 1154. Day of the Year
- 7. [JavaSilver受験対策] 誰も解けないラムダ式を解説
- 8. kotlinいいぜ~javaと比較~
- 9. SpringBootの導入【備忘録】
- 10. SmbFileでハマった話(Java)
- 11. Whatを書くな。Whyを書け。
- 12. 最近の Java がすごい!!(switch 式 )
- 13. Javaを使用してWordテーブルのテキストと画像を読み取る方法
- 14. MacでEclipse環境にlombokをインストールする
- 15. 脆弱性検出ツール「Snyk Vulnerability Scanner」 vs. 脆弱性だらけのWebアプリケーション「EasyBuggy」
- 16. [JavaSilver受験対策] 非検査例外と検査例外の違い
- 17. Minecraft Java Edition 1.18 サーバ側のバージョンアップの備忘録
- 18. azure batch 使った機能を自社アプリケーションに組み込んでみた
- 19. 【Elixir】ElixirとOOP、プログラミングスタイルの違い
- 20. AndroidのJavaで任意関数を一定間隔で実行する方法
Javaを使用してPDF内の指定されたテキストを検索して置換する方法
##Javaを使用してPDF内の指定されたテキストを検索して置換する方法
##背景
PDFファイルの内容は簡単に変更されない、エクスポートしやすい、互換性の問題も存在していませんので、データの保存などにふさわしいです。でもPDFドキュメント内の特定のテキストを置き換えたい場合もよくあります。この記事では、Javaプログラムを介したPDF内の指定されたテキストコンテンツのバッチ置換を紹介します。##プログラム環境の下準備。
コードコンパイルツール:IntelliJ IDEA
Jdkバージョン:1.8.0
Jarパッケージ:**[free Spire.Pdf.jar 3.9.0](https://www.e-iceblue.com/Download/pdf-for-java-free.html)**本記事では無料版のPDF Jarを使用しました、また、JDKバージョンの上位バージョンを使用することをお勧めします。
jarファイルがインポートされた後、Spire.PDFによって提供されるインターフェースとメソッドを呼び出してPDFを操作できます。次のインポート結果を参照してくださ
小ネタ:IntelliJでCSVファイルをテーブル形式で参照する
この記事は [ZOZO #3 Advent Calendar 2021](https://qiita.com/advent-calendar/2021/zozo) 10日目の記事になります。
小ネタです。
DBUnitなどでテスト用のDBテーブルのレコードをCSVで用意することありますよね。
そのレコードを作るのが面倒だったりするのですが、IntelliJにはCSVをテーブル形式で参照できる機能があります。
![スクリーンショット 2021-12-06 18.22.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150455/0ce146a6-2ee9-850e-a0ff-c2b371288964.png)
たとえばこんなCSV。タイトルと行が位置あっておらず編集しずらいです。
![スクリーンショット 2021-12-06 18.22.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150455/24
DBからselectした複数レコードの先頭レコードだけ取得する方法。
limitを使う。
ただし、mybatisのSQL部品に無いので、そういう時はjavaでリストの先頭レコードを取得しよう。
スッキリできるJava入門 実践編第3版 Mavenの利用について(P387)
「スッキリ分かるJava入門 実践編第3版」 P387にて、Mavenの利用方法ついて記載があったが、解説通りに利用しても実行できずかなり苦戦したので、忘れない内に学んだ事を記載しておこうと思いました。
■参考書記載の利用方法
https://sukkiri.jp/technologies/devtools/maven/apache-maven-installmacos.html解説通り、Apache:Apache Maven https://maven.apache.org
にアクセス、ZIPファイルをインストール。この時、解説は
>「ZIPファイルを適当な場所に展開。(本サイトでは、/Users/ユーザ名に展開。)」と記載があり、自分はデスクトップにインストール。
その後、下記コマンドをターミナルにて実行。“`
$ cat << EOF >> ~/.zshrcexport PATH=$PATH:~/apache-maven-3.8.4/bin
EOF
$ . ~/.zshrc
“`
その後、下記コマンドで確認。“`
$ mvn -version
A
KarateのテストでDBUnitを使ってDBにテストデータを入れる
## はじめに
Javaのテストフレームワークの中に[Karate](https://github.com/karatelabs/karate)というものがあります。
E2Eのテスト自動化ツールで、レポートなども生成してくれて、非常に便利なのですが、テストデータの作成が中々にめんどくさい。
Javaのコードをテスト内で実行できるので、それでORMみたいなものを作ってデータの作成もできるんですが、クラスを作ったらいちいちそっちも作ったり、修正したらメンテしたりとめんどくさいです。そこで便利なのが、DBUnitです。
XML形式でデータを定義し、あとは流すだけでデータを作ってくれます。
また、XMLの内部で識別用の文字列をセットしておいて、後で任意の値に置換することで変数の入れ込みも行えます。## コード
以下が該当のテストコードです。
“`bash
Feature: テスト
Background:
* def dbunit = Java.type(‘integration.util.DBUnitController’)
* def uuid = Java
【LeetCode】アルゴリズム体操 1154. Day of the Year
#### 問題文
>Given a string date representing a Gregorian calendar date formatted as YYYY-MM-DD, return the day number of the year.#### だいたいの日本語訳
引数:`String date`
戻り値:int型の日数「YYYY-MM-DD」の形でString型の日付を渡すから、その年の何日目かを計算しておくれやす。
## 解答
“`java:Solution.java
class Solution {
public int dayOfYear(String date) {
int[] days = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int year = Int
[JavaSilver受験対策] 誰も解けないラムダ式を解説
この記事は、[シアトルコンサルティング株式会社 Advent Calendar 2021](https://qiita.com/advent-calendar/2021/seattleconsulting “Advent Calendar 2021”)の9日目の記事です。
こんにちは、シアトルコンサルティングの村田です。
## はじめに* ラムダ式ってなに
* Javaシルバーの勉強中でラムダ式についての問題が分からないJavaのラムダ式に関して上記の方を対象にしています。
後半ではJavaシルバーの例題を用いて得点するポイントを解説しています。## 1. ラムダ式は実行を代入できる
通常インタフェースはメソッドを実現したクラスを定義しなければなりません。
しかしラムダ式を用いることで、メソッドが1つだけのインタフェース型変数(関数型インタフェース)に実行を代入できます。“`java
Runnable r = () -> {System.out.println(“sample”);};
“`
■ラムダ式の構文
引数の変
kotlinいいぜ~javaと比較~
# はじめに
[kotlin](https://ja.wikipedia.org/wiki/Kotlin)はjavaを簡潔に記述するために作られた言語であり
javaと互換性のある言語である# (個人的に)kotlinがいいとおもうところ
## val と var
kotlinではjavaと異なりmutable(再代入可)、imutable(再代入不可)な変数をそれぞれ定義できます。
javaだといちいちfinalをつけねばなりません“` kotlin
//kotlin
// 再代入可能な変数
var mutableValue : Int = 1
// 再代入不可能な変数
val imutableValue : Int = 1
“`“` java
//java
// 再代入可能な変数
var Integer mutableValue = 1
// 再代入不可能な変数
var final Integer imutableValue = 1
“`## null safety(null安全)
javaのoptionalと同じことがkotlinでは?の一文字で済みます。
SpringBootの導入【備忘録】
# はじめに
自身の備忘録のために作成しました.
SpringBootはほとんど触ったことがない方向けの記事です.# 目次
1. プロジェクトの作成
2. アプリケーションの雛形を作る
1. 静的なHTMLを作成する
2. Formを使用する
3. Serviceを実装し,DBと連携する
3. Dependency Injection(依存性注入)
4. MyBatis# 開発環境(バージョン忘れました.すみません)
* SpringBoot
* Gradle# 1. プロジェクトの作成
## プロジェクトの作成
[Spring initializr](https://start.spring.io/)で作成.
初期の雛形のディレクトリ構成は以下.jarファイルに固める時はsrc以下のファイルが固まる“`
.
├── HELP.md
├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.prope
SmbFileでハマった話(Java)
#SmbFileでファイル共有認証が通らない。(Java)
古のJDK5.0で開発してる古代人です。
最近、WindowsのSMB(共有フォルダ)のファイル操作で使ったSmbFileでハマったので、需要なさそうだけど残します。SMB(共有フォルダ)のファイル操作を行いたいときに使おうとしたjcifsのSmbFile。
使い方としてはJava標準のFileクラスと使い方はほぼ同じです。
とはいえFileクラスをラップしてたりするわけではなく、全く関係ないので注意です。初案件で右も左もよくわかってない初心者向け。
#パスにユーザ名、パスワードを含めるやり方“`
String rootPath = “smb://ユーザー名:パスワード@サーバー名/共有フォルダ名/”
SmbFile file = new SmbFile(rootPath);
“`
これでいけると思いきや、ユーザ名またはパスワードが不正といわれる。もしかして、Active Directoryのドメインが抜けているから認識されない?
“`
String rootPath = “smb://ドメイン名
Whatを書くな。Whyを書け。
コメントを書くときのお話。
## 「What」のコメントとは
“`
public static void main(final String[] args) {final List
telList = Arrays.asList(“090-1234-5678”, “090 1928 3746”, “09098765432”);
final Listresult = formattedTel(telList);
}public static List
formattedTel(final List telList) { // 結果用のリストインスタンスを初期化
final Listresult = new ArrayList<>(); // 電話番号リストの各要素に対して処理をする
telList.forEach(tel -> {
if (tel
最近の Java がすごい!!(switch 式 )
switch 式は Java 14 より正式に追加されたようです!!!
以下のように switch 式により値を返すことができるようになりました。ラクチン!!“`java
int numLetters = switch (day) {
case MONDAY, FRIDAY, SUNDAY -> 6;
case TUESDAY -> 7;
case THURSDAY, SATURDAY -> 8;
case WEDNESDAY -> 9;
};
“`また、以前の switch 文では以下のように case のブロックごとに break を書く必要がありましたが、アロー構文 -> により break を省略することができるようになりました。
“`java
switch (day) {
case MONDAY:
case TUESDAY:
int temp = …
break;
case WEDNESDAY
Javaを使用してWordテーブルのテキストと画像を読み取る方法
##Javaを使用してWordテーブルのテキストと画像を読み取る方法
##背景
Wordは一般的にはテキストの多い職場ドキュメントだと認識されていますが、実際テーブルも使用します。時にはWord文書の中にあるテーブルとその文字を読み取りしたい場合はどうしたらいいでしょうか。この記事でJavaを使用してWordテーブルのテキストと画像を読み取る方法を紹介します。以下は具体的な手順です。##1 プログラム環境の下仕事:
**コードコンパイルツール:**IntelliJ IDEA
**Jdkバージョン:**1.8.0
**テストドキュメント:**Word .docx 2019
**Jarパッケージ:**[free spire.doc.jar 3.9.0]()テストドキュメントは以下のようになります:
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/ad0b6d93-7baa-35c3-8f85-8184cb323516.png)**Jarのインポート手順と方法:**
方法
MacでEclipse環境にlombokをインストールする
備忘録です。
# lombok.jarをダウンロード
https://projectlombok.org/download
ここから最新をダウンロードします。
# lombokをEclipseにインストールする
lombokがダウンロードフォルダにあると仮定して
“`bash
$ java -jar ~/Downloads/lombok.jar
“`起動するとこんな画面が出てくるので自分がインストールしたいIDEのみチェックをつけて`install/update`を実行します。
![スクリーンショット 2021-12-08 11.19.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/493116/6a9fa971-42a2-6951-3b61-d4bb2fd99c8b.png)
その後、一度Eclipseを`⌘Q`で終了して起動しなおしエラーが出ているプロジェクトをビルドすれば通るはずです。
脆弱性検出ツール「Snyk Vulnerability Scanner」 vs. 脆弱性だらけのWebアプリケーション「EasyBuggy」
# はじめに
脆弱性検出ツール[「Snyk Vulnerability Scanner」](https://plugins.jetbrains.com/plugin/10972-snyk-vulnerability-scanner)は、脆弱性だらけのWebアプリケーション[「EasyBuggy」](https://github.com/k-tamura/easybuggy/blob/master/README.jp.md)の脆弱性をどの程度検出できるでしょうか?
![vs.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/43869/52332422-03da-5339-606b-6ca9bd3dd568.png)
Snyk Vulnerability Scannerには、以下のIDEのプラグインがありますが、今回はIntelliJのプラグインで検証してみました。
– Eclipse
– JetBrainsのIDE(GoLand、IntelliJ、PhpStorm、PyCharm等)
– Vi
[JavaSilver受験対策] 非検査例外と検査例外の違い
この記事は、[シアトルコンサルティング株式会社 Advent Calendar 2021](https://qiita.com/advent-calendar/2021/seattleconsulting “Advent Calendar 2021”)の8日目の記事です。
こんにちは、シアトルコンサルティングの村田です。
## はじめに
Javaの例外クラスに関して非検査例外と検査例外の内容と違いを解説しており、下記の方を対象としています。* 非検査例外と検査例外ってなに
* Javaシルバーの勉強中で例外についての問題が分からない
## 1. 例外は2種類に分けられる
Javaには例外処理をしなくてもコンパイルエラーにならないクラスがあります。
これを**非検査例外**と呼び(コンパイラが検査しないから「非検査」)
try-catchやthrowsで例外ハンドリングをする必要がありません。
反対に例外ハンドリングが必要なクラスが**検査例外**です。
検査例外はハンドリングしなければコンパイルエラーになります。
例外クラスは大きくEr
Minecraft Java Edition 1.18 サーバ側のバージョンアップの備忘録
# はじめに
こんにちは withでエンジニアをしているhayatonです。(最近入社したのでピチピチの若手です。)
withでは サーバ周りのお仕事をさせてもらっています。今回、アドベントカレンダーで記事を書かせていただくこととなり、何を書こうかと悩んでいたところに、
Minecraftの大型アップデートがきた。ということもあり、その内容を記事にさせていただきました。:::note info
このドキュメントはマイクラサーバの構築手順ではありません。バージョンアップ作業にフォーカスをおいたものです。
:::https://www.minecraft.net/ja-jp/article/the-caves—cliffs-part-ii-update-here-jp
私は、マイクラ(Minecraft JavaEdition 1.11ぐらいから)にハマっています。(公共事業大好き勢)
一人だけでは飽き足らず、自前でサーバを構築し友人同士と同じ世界で楽しんでおります。(鯖管兼任)
そのサーバのアップデートについて– 自分の作業備忘録
– 気づいたポイント(3つ)
azure batch 使った機能を自社アプリケーションに組み込んでみた
# 基礎知識
azureバッチの概要はこちら↓
[azure Batch ってなんなん?](https://qiita.com/sho-yamashita/private/1eb736edcee38b4a86ad)# はじめに
私が管理しているアプリケーションで同じ処理を大量に並行で実行したい要件があり、Azure Batchを使って、計算する機構をつくりました。# アプリ概要
あるWebアプリで指定された複数のパラメータを元に各パラメータごとに計算用アプリを実行します。
## 仕込み
– 元々Spring で作った自社Webアプリケーションがあります。
– 今回計算用にSpringでCliアプリケーションを用意しました。(引数を2つ受け取って計算結果をDBに保存する)## 仕組み
1.計算用のCliアプリケーションをazure storageに配置(batchCli.jar)
2.自社アプリ本体から、Azure Batchのリソースを作成するように指示
3.指示を受けて、プール、ノード、ジョブ、タスクが作られる
4.作られたノード上でタスクが実行され、DBに結果書き出し、
【Elixir】ElixirとOOP、プログラミングスタイルの違い
https://qiita.com/advent-calendar/2021/fukuokaex
2021/12/08の回です。
昨日は [Koyoさん](https://qiita.com/koyo-miyamura) の [Elixir + SendGrid でメール送信してみる](https://qiita.com/koyo-miyamura/items/34e369200fe1aeafb0af) でした。
# はじめに
私はfukuoka.exを通じて、Elixirに関わってちょうど1年になります。
普段は~~O社を憎みながら~~Javaでお仕事をするエンジニアなんですが、知人の紹介でElixirを触り始めました。当然JavaとElixirのパラダイムは大きく違うので、最初は戸惑うことがありました。
今回は振り返りとして、それぞれのプログラミングスタイルの違いを書いていこうと思います。# ループ処理の取り扱い
**Elixirではfor文などを使う必要がありません。**
「何を言っているんだ?」と思いますが、階乗を計算するソースコードを見てみましょう。まず
AndroidのJavaで任意関数を一定間隔で実行する方法
⚠ 昔書いた記事の流用です。
“`java
final int delayMilli = 10000; // 定期実行間隔をミリ秒で指定する.
final Handler handler = new Handler();
final Runnable r = new Runnable() {
@Override
public void run() {
// f(); 定期実行したい関数.
// invalidate(); 再描画する場合は,これを有効にする.
handler.postDelayed(this, delayMilli);
}
};
handler.post(r);
“`