- 1. Java の 例外
- 2. 嫌いな技術(ガベージコレクション、Microsoft Teams、アクセシビリティ…)で、気分が落ち込みます
- 3. #6 演算子,型変換
- 4. 初心者がリファクタリングに挑戦してみる#1-1
- 5. ローカルCSVを読み込みDto作成
- 6. Collectionを変更不可にする(Collections.unmodifiableXX)
- 7. Firestoreのコレクションやドキュメントへのパス(文字列)を取得する関数を自動生成するコマンド
- 8. 【第二回目/Java学習】初学者によるJava学習 基本構造について
- 9. いろんな言語での文字列操作の比較(VBA, Java, C#, PHP, Python, JavaScript)
- 10. JavaでPDFドキュメントを暗号化または復号化する方法
- 11. #5 switch
- 12. Java SrtingBuilderの使い方
- 13. #4 while
- 14. JavaでWordドキュメント内のテキストを置換する方法
- 15. #3 配列,多次元配列,length
- 16. 戸建て住宅マーケティングAI 開発 (0)
- 17. 年/月/日 の一部が省略された日付をパースして LocalDateTime を取得する方法
- 18. Struts2 Validation
- 19. #2 変数
- 20. OUTPUT句の結果をJavaアプリケーション上で受け取りたい
Java の 例外
Java の例外について情報をまとめる
## 例外の種類(継承関係)
Java で Throwable, Error, Exception, RuntimeException の階層を整理
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/51758/6ff3029d-a642-0e06-d4bb-5551ae60c0bf.png)|クラス|概要|
|:–|:–|
|Throwable|例外の基底クラス|
|Error|致命的エラー
throw/try-cathc不要|
|Exception|検査例外
throw/try-cathc必要(記載ないとコンパイルエラー)|
|RuntimeException |非検査例外
throw/try-cathc不要|## 例外を消さない
例外の情報を隠蔽したり消してしまうと原因の特定ができなくなってしまう
注意点として二つ記載
– 例外を隠蔽しない
例外を呼び出し元に `throw` せずに終わると隠蔽したことになる
例外
嫌いな技術(ガベージコレクション、Microsoft Teams、アクセシビリティ…)で、気分が落ち込みます
嫌いな技術を以下に示す。
(1)ガベージコレクション
実装の容易性から、開発言語としてJavaが選ばれたりするが、大規模システムになると意図しないタイミングでガベージコレクションが発生する。まあ、回避できるのでそんなに大きな問題ではない。(2)Microsoft Teamsのお行儀の悪さ
信じられないくらいメモリを食う。プロセス数も異常。普通なら、ポートをポーリングするようにコーデイングしないといけないのに、開発者はわかってないのかなぁ。増改築を繰り返したような地方の温泉旅館のような構造になっていると思われる。幹部から言われるがままに、仕様を追加させられた感が半端ない。あと、**「Enterで送信するという仕様」もどうかと思います。**(3)アクセシビリティ
Officeで、エクセルやワードを使っていますが、アクセシビリティについて指摘されたりします。自分用のメモとして使っているので、わざとピンク色や赤色をつかっているのですが、なんか怒られているような感じがして**若干気分が落ち込みます。**
#6 演算子,型変換
# 演算子
プログラム内での優先順位の順に紹介### 1.インクリメント、デクリメント演算子
|演算子|意味|コード例|結果|
|:—:|:—:|—:|—:|
|++|1プラスする|i=1; i++;|i=2|
|–|1マイナスする|i=1; i–;|i=0|### 2.算術演算子
|演算子|意味|コード例|結果|
|:—:|:—:|—:|—:|
|+|足し算|1+3|4
|-|引き算|10-4|6
|*|掛け算|5*3|15
|/|割り算|9/3|3
|%|割り算の余り|12%5|2### 3.比較演算子
|演算子|意味|コード例|結果|
|:—:|:—:|—:|—:|
|==|左辺と右辺が等しい|①10/2 == 5 , ➁10/2 == 3|①true , ②false|
|!=|左辺と右辺が等しくない|➀2+4 != 6 , ➁2+4 != 5|➀false , ➁true|
|<|左辺は右辺未満|➀6 < 6 , ➁4 < 9|➀false , ➁true| |>|左辺は右辺を超える|➀8 > 4 , ➁12 >
初心者がリファクタリングに挑戦してみる#1-1
# 初めに
とりあえず入門書を一周終わらせたので、知識をものにするためにリファクタリングに挑戦することにしました。続くかはわかりませんが、第一弾です。
## 最初のコード
“`java:test.java
import java.io.*;class test
{
public static void main(String[] args) throws IOException
{BufferedReader br = new BufferedReader(new FileReader(“test1.txt”));
String [] story = new String [10];
String str;for(int i=0; i
ローカルCSVを読み込みDto作成
“`
package design.controller;import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;public class TestYou {
private void readLocalCsv() {
try {
// Fileル名称
String fileName = “c:/csv/TestYou.csv”;
File file = new File(fileName);
// File読み込み
BufferedReader br = new BufferedReader(new FileReader(file));
// Fileヘッダ
boolean isHeader = true;
//File行
String line = null;
// File行
Collectionを変更不可にする(Collections.unmodifiableXX)
MAPを使用する際、「Collections.unmodifiable使ってください」と指示があったのでどういうものなのか調べました。
## 実際に使用したコード例
“`
/**
* テストマップ.
*/
private static final MapTEST_MAP =
Collections.unmodifiableMap(new HashMap() {
{
put(“MAP_KEY1”, “MAP_VALUE1”);
put(“MAP_KEY2”, “MAP_VALUE2”);
put(“MAP_KEY3”, “MAP_VALUE3”);
put(“MAP_KEY4”, “MAP_VALUE4”);
}
Firestoreのコレクションやドキュメントへのパス(文字列)を取得する関数を自動生成するコマンド
# はじめに
Firestoreにアクセスするときに、`/some_collection/some_doc_id/other_collection/other_doc_id` みたいにコレクションやドキュメントのパスを書くのって少し面倒じゃないですか? 特にWebとAndroidの両方でFirestore使っているときなんかは、TypescriptとKotlinで似たような文字列をコード中に定義することになるので、筆者は少し億劫になってしまいます。(Firestoreは書き方の自由度が高いので、そもそもこのように書かないぜって人も沢山いると思いますが、、、)ということで、`コレクションの構造を定義したファイル`をインプットに取って、各言語ごとに、`コレクションやドキュメントのパス(文字列)を取得する関数やメソッド`をはきだすコマンドを作成しました。
今回作ったコマンドはこちらに置いてあります。(主なコードはシェルスクリプトで書きました。)
https://github.com/ppdx999/firepath
# Usage
## 前提
Firestoreのコレクション
【第二回目/Java学習】初学者によるJava学習 基本構造について
【この記事について】
=
Javaの勉強を始めた初学者のアウトプット記事となります。
間違いなどございましたら指摘等いただけますと大変勉強になりますので
お時間あればコメントお願いいたします。1.本日の課題
=
Java基礎構造2.参考図書
=
スッキリわかるJava入門 第三版3.勉強内容:ソースコードの基本構造
=**◉構造について:全体構造**
–“`java:Hello.java
//↓①クラス名”Hello”
public class Hello{ //②クラスブロック
//↓③メソッド名”main”
public static void main(String() args){//④メソッドブロック名
System.out.println(“Hello World!”);
System.out.println(“Good Morning”);
}//④
}//②“`
**①クラス/クラス名**
**②クラスブロック**
**③メソッド/メソッド名**
**④メソッドブロ
いろんな言語での文字列操作の比較(VBA, Java, C#, PHP, Python, JavaScript)
うちのような小さな会社が、受託案件を長年やっているといろんな言語の保守メンテをやる必要があるのですが
文字列操作、この言語でなだっけ?とよく忘れてしまいます…
よく使うものを中心に文字列操作をまとめていきます。
完全に個人的な忘備録です。主にVBAを中心に Java, C#, PHP, Python, JavaScriptについて書いていきます
[文字数の長さを取得する](#文字数の長さを取得する)
[文字列から指定文字数の文字を取得する(トリミング)](#文字列から指定文字数の文字を取得する(トリミング))
[文字列から左側の指定文字数の文字を取得する](#文字列から左側の指定文字数の文字を取得する)
[文字列から右側の指定文字数の文字を取得する](#文字列から右側の指定文字数の文字を取得する)
[文字列から指定文字を検索する](#文字列から指定文字を検索する)
[文字列の後ろから指定文字を検索する](#文字列の後ろから指定文字を検索する)
[文字列を置換する](#文字列を置換する)
[アルファベットの小文字を大文字に変換する](#アルファベットの小文字を大文字に変換する)
JavaでPDFドキュメントを暗号化または復号化する方法
契約書や請求書など、数多くの機密ドキュメントがPDFフォーマットで保存されています。これらの機密ドキュメントをインターネット上で共有することは、あなたの許可なく他の人がドキュメントの内容にアクセスできる可能性があるため、リスクとなります。この問題を解決するためには、ドキュメントをパスワードで暗号化することが有効です。今回は、Javaで***PDFドキュメントを暗号化・復号化する方法***を紹介します。
## 【依存関係の追加】
> この方法は、無償のFree Spire.Doc for Javaが必要ですので、先にjarファイルをインポートしてください。### 1. Maven
Maven を使用している場合、プロジェクトの pom.xml ファイルに以下のコードを追加することで、簡単にアプリケーションに JAR ファイルをインポートすることができます。
“`XML
com.e-iceblue
e-iceblue
h
#5 switch
# 学習内容
switch文の学習
“`java
/* ソースコード */
public class Select{
public static void main(String[] args){
int num = 2;
System.out.println(“受ける科目は?”);switch(num){
case 1: //式の値が1の場合
System.out.println(“国語”);
break;
case 2: //式の値が2の場合
System.out.println(“数学”);
break;
default: //どれにも当てはまらなかった場合
break;
}String str = “Italy”;
System.out.println(“\n” + “行ってみたい国は?”);swi
Java SrtingBuilderの使い方
久しぶりにJava SkillCheckを解いていたら恐ろしく忘れていたので、、
備忘録として復習しながら記録しておくことにします。【skillCkeckの設問】
Javaの標準入力から任意の文字列を入力し、取得した文字列を反転させた文字列を出力A. StringBuilder.reverseを使用
ここからは Java SrtingBuilderについてのまとめ
JavaのSrtingBuilderは文字列を扱うクラスのこと
StringとはJavaに用意された標準クラスの一つ「java.lang」というパッケージ
Stringクラスに格納されたデータは一度代入されると変更はできない。
例)String str = “いぬ” のあと値に str =”ねこ”と入力しても出力はされるが
strが格納された”いぬ”のメモリ領域を参照しているのではなく、新たなstrとしてstr”ねこ”メモリ領域に格納される。基本コード
“`php:Main.java
public class Main {public static void main(String[] arg
#4 while
# 学習内容
“`java
/* ソースコード */
public class Loop{
public static void main(String[] args){
int i=1;
while(i<5){ //条件が "true" の間,処理を繰り返す System.out.println("この処理は" + i + "回目です"); i++; } while(i>5){ //条件が “false” のため、行われない
System.out.println(“この処理は” + i + “回目です。”);
i++;
}int a =1;
do{ //後述の while文が “false” でも処理がされる
System.out.println(“これは” + a + “回目です。”);
a++;
}while(a<5); System.ou
JavaでWordドキュメント内のテキストを置換する方法
Word ドキュメント内のテキストを置換する必要がある場合があります。例えば、ドキュメント内で誰かの名前のスペルを何度も間違えてしまい、正しい名前に更新する必要がある場合や、テンプレートからWordドキュメントを生成する際に、プレースホルダーのテキストを置き換える必要がある場合などです。この操作を自動化するために、この記事では、Free Spire.Doc for Javaライブラリを使用して***Wordドキュメント内のテキストを置換する方法***について説明します。この記事では、以下のトピックを扱います。
– ドキュメント内のテキストの置換
– 表内のテキストの置換
– テキストを画像に置き換える
– 正規表現によるテキストの置換## 【依存関係の追加】
> この方法は、無償のFree Spire.Doc for Javaが必要ですので、先にjarファイルをインポートしてください。### 1. Maven
Maven を使用している場合、プロジェクトの pom.xml ファイルに以下のコードを追加することで、簡単にアプリケーションに JAR ファイルをインポートすることがで
#3 配列,多次元配列,length
# 学習内容
配列。参考 -> https://www.youtube.com/watch?v=nSmO1s-dkxY&list=PLru8-xuz0YvyZhvDRZvakIFW6-MHky-lD&index=4
“`java
public class Hairetu{
public static void main(String[] args) {
int[] num = new int[2]; //new -> 配列を生成する,デフォルトで”0″が入る
// 配列 “num” には参照値が入る
num[0] = 75; // [添字]は0から始まる
num[1] = 96;int[] a = {92,75,43}; // 配列の初期化
System.out.println(num[0] + “\n” + num[1]); // “\n”は改行
System.out.println(a.length); // “配列.length”で配列数を割り出せる}
}
“
戸建て住宅マーケティングAI 開発 (0)
これから、積もってきた python vue.js java 等の kipple を使って
戸建て住宅を題材に、マーケティングシステム(AI ?) の開発してみます。以下のurlは、とりあえず立ち上げたもので、
今後、必要な機能を継ぎ足していきます。[![タイトルなし.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2639/a87baac6-01c0-ce21-ce73-bd1c1dada726.png)](https://15db.end0tknr.jp/)
年/月/日 の一部が省略された日付をパースして LocalDateTime を取得する方法
(この記事は [地平線に行く](https://yujisoftware.hatenablog.com/entry/2022/07/18/233301) とのマルチポストです)
# 年が省略されている日付(`月/日`)の場合
まずは、[DateTimeFormatter](https://docs.oracle.com/javase/jp/17/docs/api/java.base/java/time/format/DateTimeFormatter.html) を用意します。
“`java
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(“MM/dd”);
“`次に、日付を [**MonthDay クラス**](https://docs.oracle.com/javase/jp/17/docs/api/java.base/java/time/MonthDay.html)でパースします。
“`java
MonthDay monthDay = MonthDay.parse(“07/18”, formatte
Struts2 Validation
# 概要
Struts2のValidationフレームワークについて
調査対象:struts-6.0.0-SNAPSHOT# 組み込みのValidator
| クラス| タイプ| 機能 |対象|
|:–|:–|:–|:–|
|[RequiredFieldValidator](#requiredfieldvalidator)|required|指定したフィールドがnot nullであることを検証する。|フィールド|
|[RequiredStringValidator](#requiredstringvalidator)|requiredstring|指定したフィールドがnot nullかつ長さが0より大きいことを検証する。|フィールド|
|[IntRangeFieldValidator](#intrangefieldvalidator)|int|int型数値が指定した値の範囲内であること|フィールド|
|[LongRangeFieldValidator](#longrangefieldvalidator)|long|long型数値が指定した値の範囲内であること|フィールド|
#2 変数
参考 -> https://www.youtube.com/watch?v=ukNoszW09BI&list=PLru8-xuz0YvyZhvDRZvakIFW6-MHky-lD&index=3
# 学習内容
変数について。
“`java
public class Hensuu{
public static void main(String[] args) {
boolean bln = true;
char ch = ‘a’; //シングルクォーテーションを忘れない
byte by = 3;
long lo = 96l; //末尾に”l”(L)を忘れない
float fl = -35.2f; //末尾に”f”(F)を忘れないSystem.out.println(bln);
System.out.println(ch);
System.out.println(by);
System.out.println(lo);
System.out.printl
OUTPUT句の結果をJavaアプリケーション上で受け取りたい
SQLServerには削除したり更新したりしたデータを返す[OUTPUT句](https://docs.microsoft.com/ja-jp/sql/t-sql/queries/output-clause-transact-sql?view=sql-server-ver16)というものがあります。OUTPUT句の結果をJavaアプリケーション上で受け取りたい場合は`PreparedStatement::executeQuery`を利用して、SQLを発行すれば良いです。OUTPUT句はDELETE文やUPDATE文で利用しますが、通常DELETE文やUPDATE文の発行に利用する`PreparedStatement::executeUpdate`ではOUTPUT句の結果を受け取れないことに注意する必要があります。
未検証ですが、データベース接続に何らかのライブラリを使う場合は、通常SELECT文を発行するためのAPIを用いて、OUTPUT句を含むDELETE文なりUPDATE文なりを発行すればよいかと思われます。
以下は従業員の情報を格納する`employees`テーブルからidが