- 1. #14 Spring JavaScript 生年月日から年齢を自動計算
- 2. Java コンパイルができない
- 3. JavaとGridDBを用いたテキスト分類器
- 4. イテレータの使用方法まとめ
- 5. JavaでWord文書の空白行を削除する方法
- 6. 算術演算
- 7. Leetcode 169. Majority Element
- 8. Leetcode 209. Minimum Size Subarray Sum
- 9. devcontainer を利用して Java(Amazon Corretto) + Localstack の開発環境をつくってみた
- 10. 【徹底解説まとめ】 継承、抽象クラスとインターフェイスの違い、ついでにSOLID【Java】
- 11. Repository~Service~Controller~html
- 12. Leetcode 224. Basic Calculator
- 13. 競プロ典型90問 010-Score Sum Queries(★2)をJavaで解いてみた!
- 14. ABC278A~Eの解答[Java]
- 15. #13 Spring エラーメッセージの表示
- 16. Leetcode 154. Find Minimum in Rotated Sorted Array II
- 17. Cookieが原因でhttp://localhost:8080/にアクセス出来ない
- 18. #12 画面に表示される文字を多言語化する
- 19. Listの編集距離(Java)
- 20. #11 messages.propertiesの値をコントローラに渡す
#14 Spring JavaScript 生年月日から年齢を自動計算
# #14 Spring 生年月日から年齢を自動計算
今回はJavaScriptを用いて生年月日から年齢を自動で求めるようなプログラムを記述していきます。
最初に書いておきますが、入力フォーム内に“/,-“のような数字以外の文字が含まれていても問題なく動作することができました。# 前回まで
前回は新規登録画面を作成しました。https://qiita.com/Jackoguro/items/db35aa456341a484254b
入力フォームに誕生日1,2という項目があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884987/3309863c-63ce-537e-5560-f33f61f454bf.png)誕生日1は“type=”date”“を用いて入力する形式で、誕生日2は“type=”text”“を用いて“yyyy/MM/dd“形式を用いて入力します。
# 構築環境
1. 各バージョン
Spring Boot ver 2.7.5
jqu
Java コンパイルができない
# 目的
Javaを勉強中にコンパイルができず無駄に時間を浪費したので、備忘録として投稿します。## 流れ
– 階層とやりたいことの確認
– 発生したエラー
– 解消法# 階層構造
Eclipseを使用`tree /f`にて階層を確認
“`cmd
C:\ocjp\workspace\CoffeeChoiceApp>tree /f
“`“`terminal
C:.
│ .classpath
│ .project
│
├─.settings
│ org.eclipse.core.resources.prefs
│ org.eclipse.jdt.core.prefs
│
├─bin
│ └─main
│
└─src
└─main
BestCoffeeChoiceApp.java
CheckNumber.java
CoffeeTasteList.java
ConnectDatabase.java
Executing
JavaとGridDBを用いたテキスト分類器
テキストデータは、電子メール、チャットでの会話、ソーシャルメディア、Webサイトなど、あらゆるところに存在します。テキストデータには多くの情報が含まれていますが、その非構造化データの性質上、情報を抽出することが困難な場合があります。非構造化データからインサイトを抽出するには、データの分類に多くの時間とコストがかかります。
自然言語処理(NLP)技術を用いたテキスト分類器は、高速でスケーラブル、かつコスト効率の高い方法でデータを構造化する代替方法を提供します。
テキストの分類は、テキストをグループに分けて整理することで、「テキストタグ付」または「テキスト分類」とも呼ばれます。自然言語処理では、テキストデータを分析し、その内容に応じてあらかじめ定義されたカテゴリーに分類することが可能です。
今回は、JavaとGridDBを使って、テキスト分類器を実装します。テキスト分類器の目的は、メールをspamとhamのどちらかに分類することです。
全ソースとデータはこちらでご覧いただけます。
イテレータの使用方法まとめ
# 目次
[1.はじめに](#1-はじめに)
[2.イテレータとは](#2-イテレータとは)
[3.イテレータの使用方法](#3-イテレータの使用方法)
[4.応用編](#4-応用編)# 1. はじめに
現場での実装時、リスト内の要素除外のためリスト.removeと記述していたのですが、
それだとリストの一番目の要素がなくなり、次の要素に進めなくなるためシスエラーになってしまうという指摘をいただき、イテレータを使用すれば、removeできることを知りました。
(※リストを最後の要素からループすればイテレータを使用せずにremove可能)今回は復習のため、こちらにまとめていきたいと思います。
# 2. イテレータとは
>イテレータは、集合の要素に順番にアクセスする時に使用するインターフェースです。
集合にはリスト、セット、マップなど複数の種別がありますが、イテレータはそれらにアクセスするための、共通の仕組みを提供します。
イテレータを用いることで、個別の実装を意識せずに、要素へのアクセスを自然に記述できます。↓上記はこちらの記事から引用させていただきました。
h
JavaでWord文書の空白行を削除する方法
Word文書を扱っていると、大量の空白行に遭遇することが多く、文書の美観を損ねるだけでなく、文書の読みやすさも損なわれてしまいます。本記事では、無料の専門家向け開発ツール「[Free Spire.Doc for Java](https://jp.e-iceblue.com/introduce/free-spire-doc-for-java.html)」を使って、Word文書内の空白行や段落を素早く削除する方法を紹介します。具体的な操作手順は、以下のとおりです。
## 【依存関係の追加】
> **この方法は、無料のFree Spire.Doc for Javaが必要ですので、先にjarファイルをインポートしてください。**
### 1. Maven
Maven を使用している場合、プロジェクトの pom.xml ファイルに以下のコードを追加することで、簡単にアプリケーションに JAR ファイルをインポートすることができます。
“`XML
com.e-iceblue
算術演算
# 各プログラミング言語の算術演算
加減乗除の四則演算は大概同じなのですが、剰余が演算子が異なったり、インクリメント、ビット演算の有無などが演算子に影響を与えているパターンがあるので、個人的に整理しておきたいな・・・と。
誤植や追記がございましたら、ご連絡お願い致します。|プログラミング言語|加算(和)|減算(差)|乗算(積)|除算(商)|除算(商:整数値のみ)|剰余(余)|べき乗
(累乗)|インクリメント|ビット演算|
| :—: | :—: | :—: | :—: | :—: | :—: | :—: | :—: | :—: | :—: |
|Excel | + | – | * | / | |MOD()|^
POWER() |無|有|
|VBA | + | – | * | / | \ |MOD()|^
POWER() |有|有|
|VB.net| + | – | * | / | \ |MOD()|^
POWER() |有|有|
|C | + | – | * | / | | % |math.h
Leetcode 169. Majority Element
# 169. Majority Element
https://leetcode.com/problems/majority-element/
## アプローチ
### HashMap“`java
class Solution {
public int majorityElement(int[] nums) {
HashMaphashmap = new HashMap<>();
for (int num : nums) {
hashmap.put(num, hashmap.getOrDefault(num, 0) + 1);
}
int majority = nums.length / 2;
return hashmap.entrySet().stream().filter(obj -> obj.getValue() > majority).findFirst().get().getKey();
}
}
“`
Leetcode 209. Minimum Size Subarray Sum
# 209. Minimum Size Subarray Sum
https://leetcode.com/problems/minimum-size-subarray-sum/## アプローチ
### Sliding window(?) Two Pointer“`java
class Solution {
public int minSubArrayLen(int target, int[] nums) {
int start = 0;
int end = 0;
int sum = 0;
int result = Integer.MAX_VALUE;while (start < nums.length) { sum += nums[start++]; // 合算 while (target <= sum) { // 基準を超過した場合、範囲を小さくする result = Math.min(start
devcontainer を利用して Java(Amazon Corretto) + Localstack の開発環境をつくってみた
devcontainer の Java の事前定義済みコンテナ構成では、Microsoft Build of OpenJDK が利用されています。
Amazon Corretto と Localstack を利用したかったので、devcontainer の設定を変えて開発環境をつくってみました。
動作確認としては Amazon SQS を Localstack 上に構成して、送受信を行いました。
## 前提とする環境
– WSL2 および Docker がインストール済み
– [WSL2 + Docker で作る Docker 環境](https://qiita.com/ichi-ken/items/5a04a732524c72ff809a)## 動作確認用プロジェクトの作成
[Spring Initializr](https://start.spring.io/)を利用してプロジェクトを作成します。
画面からも作成することができますが、今回は curl から作成しました(パラメータは`curl https://start.spring.io`から確認することができ
【徹底解説まとめ】 継承、抽象クラスとインターフェイスの違い、ついでにSOLID【Java】
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/650867/011a75bc-955d-b7b6-0548-068d522a5eba.png)
# 初めに
本記事は、私のブログにある『継承・インターフェイス・抽象クラス』シリーズ』を一つの記事にまとめたものです。全部で 106,227文字ありました…。この記事では 25,000文字くらいでお話しできればと思います。
なるべく簡潔にまとめたいと思います。詳細を知りたい方は以下のブログを読んでいただければと思います。
デザインパターンを勉強している時に、「は?インターフェイス?抽象クラス?何が違うの?」とか「継承ってなんか解ったような解らんような感じなんよな〜」って感じました。調べてみると、ほんとに期待した記事は出ませんでした。
– *interface を implements すると、クラスにメソッドの実装を強制できる*
よく見ます。「で??だからなんなん??いつ使うんや!」という気持ちでした。構文とかルールを公式ドキュ
Repository~Service~Controller~html
—-
properties
—-“`properties:application.properties
# DB
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/spring
spring.datasource.username=spring
spring.datasource.password=spring
#DB生成処理
#実行の際にはユーザーとデータベースが作成されている必要あり
spring.sql.init.mode=always
spring.sql.init.schema-locations=classpath:database/schema.sql
spring.sql.init.data-locations=classpath:database/data.sql#devtoolの設定
spring.devtools.restart.additional-paths=src/m
Leetcode 224. Basic Calculator
# 224. Basic Calculator
https://leetcode.com/problems/basic-calculator/## 難易度
### HARD## アプローチ
### Stack
O(n)“`java
package com.leetcode.hard;import java.util.Stack;
public class BasicCalculator224 {
public static void main(String[] args) {
System.out.println(calculate(“2+(3)”));
}public static int calculate(String s) {
int sum = 0;// one: +
// minus one: –
int isSignPlus = 1;Stack
stack = new Stack<>();
競プロ典型90問 010-Score Sum Queries(★2)をJavaで解いてみた!
こんにちは、[Kuni](https://qiita.com/kuniengineer)です。現在Javaを学習中で、Atcoderでコーディング力を高めているところです。
今回は[競プロ典型90問 010-Score Sum Queries(★2)](https://atcoder.jp/contests/typical90/tasks/typical90_j)の実装にチャレンジしてみました。# ACのプログラム
“`java:Main.java
import java.util.*;public class Main
{ //クラス名はMain
public static void main(String[] args) {//標準入力受け取り準備
Scanner scanner = new Scanner(System.in);//生徒の人数を受け取る
int N = scanner.nextInt();//各生徒の点数を格納する配列を定義
int [][] numb
ABC278A~Eの解答[Java]
## はじめに
今回はEまでコンテスト中に書いた物を載せようと思います。では、見ていきましょう。
## A – Shift
問題文は[こちら](https://atcoder.jp/contests/abc278/tasks/abc278_a)$N \gt K$の時は$K+1$番目から$N$番目までの要素を出力後、$K$個$0$を出力しました。
$N \le K$の時は$N$個$0$を出力しました。
“`A.java
class Main{static final boolean autoFlush = false;
static final Library System = new Library(java.lang.System.in,java.lang.System.out,java.lang.System.err,autoFlush);public static void main(String[] args){
//N、K、Aの受け取り
int N = System.in.nextInt();
int K = System.in.
#13 Spring エラーメッセージの表示
# #13 Spring エラーメッセージの表示
今回は数値型の入力欄に文字列型の値を入れてしまった場合などに画面にエラーメッセージを表示させる処理を行います。
文字数の制限などはバリデーションを用いて処理しますが、今回はその前段階の型変換で起きるエラーを処理します。# 前提条件
この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため、所々説明は省略します。# 前回まで
前回は画面に表示される固定文字を日本語以外に対応させる処理を行いました。https://qiita.com/Jackoguro/items/a67de8ab1468598e3f75
# 構築環境
1. 各バージョン
Spring Boot ver 2.7.52. 依存関係
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884987/36f63552-512f-c4b5-6798-a39849d8ceeb.p
Leetcode 154. Find Minimum in Rotated Sorted Array II
# 154. Find Minimum in Rotated Sorted Array II
https://leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/description/
## アプローチ
### 1. 二分探索
“`java
class Solution {
public int findMin(int[] nums) {
if (nums == null || nums.length == 0) {
return 0;
}int start = 0;
int end = nums.length – 1;if (nums[start] < nums[end]) { return nums[start]; } while (start < end) {// not putting <= because the arra
Cookieが原因でhttp://localhost:8080/にアクセス出来ない
# 現状
IntellJでmain/java/in.packagenameディレクトリにあるApplicationファイルを右クリックして実行を行ない
[http://localhost:8080/]でアクセス出来るか確認した所
HTTP Status 400 – Bad Requestと表示されてアクセスが出来ませんでしたIntellJ内では下記のエラーコードが出ていました
“`java
2022-11-16 14:52:43.949 INFO 35198 — [nio-8080-exec-1] o.apache.coyote.http11.Http11Processor : Error parsing HTTP request header
Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.java.lang.IllegalArgumentException: Request header is too large
“`# 原因
#12 画面に表示される文字を多言語化する
# #12 画面に表示される文字を多言語化する[messages.properties]
日本語以外もWeb画面上に表示できるよう設定していきます。# 前提条件
この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため、所々説明は省略します。# 前回まで
この記事は#10記事の続きとなります。#10ではmessages.propertiesを用いて画面に表示される文字の共通化を行いました。https://qiita.com/Jackoguro/items/b71597bfeb79a90e7b7c
# 構築環境
1. 各バージョン
Spring Boot ver 2.7.52. 依存関係
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884987/2a154793-8a45-27b0-cd32-b184567eaea5.png)# 成果物
![image.png](http
Listの編集距離(Java)
編集距離のList版。
Java17で簡単な動作確認しましたが、Java8でも動くと思います。# 動機
集合(Set)での類似度(Jaccard係数、Dice係数、Simpson係数、など)のような感じで、順番を考慮した類似度を使用したかったため。# ソースコード
“`java
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class EditDistance
{
Map> memo; public EditDistance() {
memo = new HashMap>();
}public int distance(List
list1, List list2) {
if (list1.isEmpty()) return list2.size
#11 messages.propertiesの値をコントローラに渡す
# #11 messages.propertiesの値をコントローラに渡す
前回の記事ではmessages.propertiesに記述した内容を各画面に直接入力してましたが、今回はコントローラに渡してから各画面で値を表示します。# 前提条件
この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため、所々説明は省略します。# 前回まで
前回の記事https://qiita.com/Jackoguro/items/b71597bfeb79a90e7b7c
前々回の記事
https://qiita.com/Jackoguro/items/db35aa456341a484254b
# 構築環境
1. 各バージョン
Spring Boot ver 2.7.52. 依存関係
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884987/67356b8d-2039-81cd-c1a0-b