- 1. [paiza]こっからここまで買うわ!(文字列収集 (paizaランク S 相当)
- 2. [paiza]いとおかし( 【殿堂入りキャンペーン】お菓子の詰め合わせ (paizaランク A 相当)
- 3. 解いてみた。「Sランク:村人の友好関係」
- 4. Springbootで特定のエンドポイントが実行されたらセッションを更新しないような実装をしてみる
- 5. Javaで「LITERALフラグ(パターンの中のメタ文字が特別な意味を持たなくなる)」の動作を確認してみた
- 6. [paiza]エビバディパッション!(じゃんけんの手の出し方 (paizaランク A 相当))
- 7. Seleniumで引っかかったことを解決する
- 8. JavaとPHPの文法の違い
- 9. [paiza]ポップにプッシュ(ハノイの塔 (paizaランク A 相当)
- 10. [paiza]おりおりおりおー(山折り谷折り (paizaランク A 相当)
- 11. [paiza]プリーズ、プリーズ、交換しましょ(本の整理 (paizaランク A 相当)
- 12. Spring FrameworkのDIコンテナ
- 13. Spring Bootのフォルダ構成を整理整頓で開発効率アップ!
- 14. [paiza]脳筋プレーやめた(【殿堂入りキャンペーン】名刺バインダー管理 (paizaランク B 相当)
- 15. Java Gold 例題 並列処理
- 16. [paiza]toArrayに激ハマり(長テーブルのうなぎ屋 (paizaランク B 相当)
- 17. Paiza×Qiitaキャンペーン 全問Javaで解説してみた【C 宝くじ 編】
- 18. [paiza]シリをもげ!(みんなでしりとり (paizaランク B 相当)
- 19. Paiza×Qiitaキャンペーン 全問Javaで解説してみた【C 野球の審判 編】
- 20. Javaで「UNICODE_CASEフラグ(Unicode準拠の文字でも大文字と小文字を区別しない)」の動作を確認してみた
[paiza]こっからここまで買うわ!(文字列収集 (paizaランク S 相当)
# 飽き性なもんで
3ヶ月~半年ぐらいで飽きが来て、
年単位でやろうもんならやる気がほぼほぼ0になって片手間で別のこと始めちゃうくらい、
1つのプロジェクトを長くやるのがシンドく感じてしまう人間なので、
同じプロジェクトを何年も出来る人って凄いなって思う。# チェック処理とかは端折ってる
/** ここから定型文 */
ここで記載したクラスについては、
[こっちの記事](https://qiita.com/AsilHatake/items/40204293bdf59cb9f9d8)に書いてある、標準入力をList化したりしてるMainクラスから呼び出す予定だし・なんか継承したりしてるYO!!ちな、Mainを実行して標準入力から入力するのクソ面倒くさいので、
Java編については問題の入力例をパラメータにしたテストクラスとかも作って公開するYO!!開発・実行環境はこんな感じ
– VSCode
– Java 17
– jUnit 5.9
– mavenpom.xmlはこんな感じ
“`xml:pom.xm
[paiza]いとおかし( 【殿堂入りキャンペーン】お菓子の詰め合わせ (paizaランク A 相当)
# 年に2~3回ぐらい
ありがたいことにお土産で「萩の月」をいただくことがあるんですが、
もうあの甘さとスポンジの食感がシンドくてシンドくて。。。
年に1回あるかないかぐらいのペースで食べたいところです。
※貰ってばかりで言える立場にないですが、他にお土産無いんか?# チェック処理とかは端折ってる
/** ここから定型文 */
ここで記載したクラスについては、
[こっちの記事](https://qiita.com/AsilHatake/items/40204293bdf59cb9f9d8)に書いてある、標準入力をList化したりしてるMainクラスから呼び出す予定だし・なんか継承したりしてるYO!!ちな、Mainを実行して標準入力から入力するのクソ面倒くさいので、
Java編については問題の入力例をパラメータにしたテストクラスとかも作って公開するYO!!開発・実行環境はこんな感じ
– VSCode
– Java 17
– jUnit 5.9
– mavenpom.xmlはこんな感じ
“`xml:p
解いてみた。「Sランク:村人の友好関係」
# 問題
[「Sランク:村人の友好関係」](https://paiza.jp/works/mondai/s_rank_skillcheck_archive/group_popularity)# コード
Javaで解いてみました。“` Java
import java.util.*;public class Main {
public static void main(String[] args) {Scanner sc = new Scanner(System.in);
int nN = sc.nextInt();
int nM = sc.nextInt();
int nQ = sc.nextInt();boolean[] bIn = new boolean[nN+1];
boolean[][] bValid = new boolean[nN+1][nN+1];
long[][] lValue = new long[nN+1][
Springbootで特定のエンドポイントが実行されたらセッションを更新しないような実装をしてみる
# 概要
一定時間ごとにAPIを実行してセッションが有効かどうかの判定がしたかった。
Filterを実装しセッション有効判定エンドポイント以外がアクセスされた場合はsetAttributeに現在の時間をセッションに設定しセッション有効判定エンドポイントがアクセスされた場合はセッションタイムアウトのチェックとセッションの無効化をおこなうようにしてみた。“`java
@Component
public class SessionTimeoutFilter implements Filter {@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpSession sessio
Javaで「LITERALフラグ(パターンの中のメタ文字が特別な意味を持たなくなる)」の動作を確認してみた
# 概要
Javaで「LITERALフラグ(パターンの中のメタ文字が特別な意味を持たなくなる)」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/regex/index23.html
# 実装
以下のファイルを作成しました。
“`JSample23_1.java
import java.util.regex.*;class JSample23_1{
public static void main(String[] args){
String target1 = “A1B”;
String target2 = “A240B”;
String target3 = “A[0-9]*B”;String regex = “A[0-9]*B”;
Pattern p1 = Pattern.compile(regex);Matcher m1_1 = p1.matcher(target1);
System.out.println(target1 + “
[paiza]エビバディパッション!(じゃんけんの手の出し方 (paizaランク A 相当))
# 最初は( ゜д゜)o彡゜ん゛ーーー!
プログラムに大切なことって何だと思う?
そうだね、プロテインだね。# チェック処理とかは端折ってる
/** ここから定型文 */
ここで記載したクラスについては、
[こっちの記事](https://qiita.com/AsilHatake/items/40204293bdf59cb9f9d8)に書いてある、標準入力をList化したりしてるMainクラスから呼び出す予定だし・なんか継承したりしてるYO!!ちな、Mainを実行して標準入力から入力するのクソ面倒くさいので、
Java編については問題の入力例をパラメータにしたテストクラスとかも作って公開するYO!!開発・実行環境はこんな感じ
– VSCode
– Java 17
– jUnit 5.9
– mavenpom.xmlはこんな感じ
“`xml:pom.xml
Seleniumで引っかかったことを解決する ## 構築時の環境
Selenium4.0.0, java8, Maven
Mavenビルドまで成功
## 引っかかったエラー
AppTest.java実行時にエラーが発生した。
“`
%ERROR 2,testGoogleSearch(com.example.AppTest)
%TRACES
org.openqa.selenium.remote.http.ConnectionFailedException: Unable to establish websocket connection to (以下略)
“`
## 試したこと
– WebDriver起動時のエラーをデバッグログを出すことで探索すると以下の記述で止まっていた
“`
[1724305784.821][DEBUG]: DevTools WebSocket Event: Target.detachedFromTarget (session_id=) browser {
“sessionId”: “(略)”,
“targetId”: “(略)”
}
“`
– 何らかの理由で接続が切れているが、原因が
JavaとPHPの文法の違い
## はじめに
JavaとPHPは、どちらも広く使われているプログラミング言語ですが、その文法には多くの違いがあります。本記事では、JavaとPHPの基本的な文法の違いを中心に解説します。これから両言語を学ぶ方や、どちらか一方の言語に慣れている方に役立つ内容となっています。## 1. 変数の宣言と型指定
### Java
Javaでは、変数を宣言する際に必ずデータ型を指定します。これは、Javaが静的型付け言語であるためです。“`java
int num = 10;
String text = “Hello, World!”;
“`### PHP
一方、PHPでは変数にデータ型を明示的に指定する必要はありません。PHPは動的型付け言語であり、変数の型は実行時に決定されます。“`php
$num = 10;
$text = “Hello, World!”;
“`## 2. クラスとオブジェクトの定義
### Java
Javaは純粋なオブジェクト指向言語であり、すべてのコードはクラスの中に配置されます。以下は、クラスとオブジェクトの基本的な定義です。`
[paiza]ポップにプッシュ(ハノイの塔 (paizaランク A 相当)
# ア アラララァ ア アァ!
歌う系のヒップポップ好きなんですよねぇ。
SOUL’d OUT(ウェカピポ YO!
Dragon Ash(ファンタジスタ
nobodyknows+(ダンス・ダンス・ダンス R゛E゛A゛D゛Y゛ G゛O゛!# チェック処理とかは端折ってる
/** ここから定型文 */
ここで記載したクラスについては、
[こっちの記事](https://qiita.com/AsilHatake/items/40204293bdf59cb9f9d8)に書いてある、標準入力をList化したりしてるMainクラスから呼び出す予定だし・なんか継承したりしてるYO!!ちな、Mainを実行して標準入力から入力するのクソ面倒くさいので、
Java編については問題の入力例をパラメータにしたテストクラスとかも作って公開するYO!!開発・実行環境はこんな感じ
– VSCode
– Java 17
– jUnit 5.9
– mavenpom.xmlはこんな感じ
“`xml:pom.xml
[paiza]おりおりおりおー(山折り谷折り (paizaランク A 相当)
# 足りない頭なら知恵を盗みゃいい
二番煎じ、三番煎じで作ればいいってことですね!
世の中の似たようなクソアプリはこういうことなんですね、わかります。https://paiza.jp/works/mondai/real_event/origami
# チェック処理とかは端折ってる
/** ここから定型文 */
ここで記載したクラスについては、
[こっちの記事](https://qiita.com/AsilHatake/items/40204293bdf59cb9f9d8)に書いてある、標準入力をList化したりしてるMainクラスから呼び出す予定だし・なんか継承したりしてるYO!!ちな、Mainを実行して標準入力から入力するのクソ面倒くさいので、
Java編については問題の入力例をパラメータにしたテストクラスとかも作って公開するYO!!開発・実行環境はこんな感じ
– VSCode
– Java 17
– jUnit 5.9
– mavenpom.xmlはこんな感じ
“`xml:pom.xml
<
[paiza]プリーズ、プリーズ、交換しましょ(本の整理 (paizaランク A 相当)
# 赤・緑から剣・盾もやっとる(第1世代~
Poke Goに関しては、
オー◯ド「そこに3人の社畜がおるじゃろ?」
1. 上司や会社の命令にしたがいます。イエスマン
1. 残業はお客様へのサービスです。サビザン
1. 仕事が趣味です。ワカホリhttps://paiza.jp/works/mondai/real_event/book_sort
# チェック処理とかは端折ってる
/** ここから定型文 */
ここで記載したクラスについては、
[こっちの記事](https://qiita.com/AsilHatake/items/40204293bdf59cb9f9d8)に書いてある、標準入力をList化したりしてるMainクラスから呼び出す予定だし・なんか継承したりしてるYO!!ちな、Mainを実行して標準入力から入力するのクソ面倒くさいので、
Java編については問題の入力例をパラメータにしたテストクラスとかも作って公開するYO!!開発・実行環境はこんな感じ
– VSCode
– Java 17
– jU
Spring FrameworkのDIコンテナ
## DIコンテナ(依存性の注入)
DIコンテナとは依存性の注入をしてくれるSpring Frameworkの機能## 依存とは
##### クラス依存
クラスAとクラスBがあり、クラスAでクラスBのメソッドを使う場合は以下になる。
“`java
class A {
public void methodA() {
B b = new B();
b.methodB();
}
}
“`
上記のようにクラスA(使う側)でクラスB(使われる側)のインスタンスを作成してメソッドを実行する。
仕様変更などで、使われる側のクラスがクラスCになった場合は以下のように修正することになる。
“`java
class A {
public void methodA() {
C c = new C();
c.methodC();
}
}
“`
このようにインスタンスを作り直してメソッドを実行した。書き換えた箇所を「依存性がある」という。
Bのインスタンを使用している箇所が10箇所や100箇所あった場合、修正にかなり時間がかかってしまう。
Spring
Spring Bootのフォルダ構成を整理整頓で開発効率アップ!
## はじめに
Spring Bootでの開発は楽しいものですが、プロジェクトが大きくなると、まるで引き出しを開けると物が飛び出してくるような状態になりがちです。
「この場合どこのフォルダに配置したほうがいいのかな?」「どこに何があるのか分からない!」なんてことにならないためにも、フォルダ構成はしっかりしておきたいところ。今回は、Spring Bootプロジェクトのフォルダ構成について、整理整頓の大切さと共に、Spring Bootプロジェクトでよく使用されるフォルダ構成について、その目的や役割を解説します。
## 問題
プロジェクトが大きくなればなるほど、コードがゴチャゴチャに。
まるで片付けられない部屋のように、どこに何があるのか分からなくなります。
さらに、「あれ?このクラス、こんなところにいたの?」と予期せぬ出会いを果たすこともしばしば。
こんな状態では、開発効率がガタ落ちしてしまいます。**主な問題点**:
– コードの可読性が低下し、新人開発者がプロジェクトに参加するときに「ここがカオスですか?」と戸惑う。
– バグ修正や機能追加時に、関係ないクラスまで巻き
[paiza]脳筋プレーやめた(【殿堂入りキャンペーン】名刺バインダー管理 (paizaランク B 相当)
# 見つかるまでループするとか脳筋かよ(特大ブーメラン
[JavaScript版](https://qiita.com/AsilHatake/items/547c799b9d2ca752db6e)ではひたすらループして、
特定の数字が見つかるまで帰れまテンみたいな脳筋プレーしてましたが、
よくよく数字を並べて比較してたらソレっぽい関係性的なのが見つかったため、プログラムに落とし込んでみた。https://paiza.jp/works/mondai/b_rank_skillcheck_archive/name_card
# チェック処理とかは端折ってる
/** ここから定型文 */
ここで記載したクラスについては、
[こっちの記事](https://qiita.com/AsilHatake/items/40204293bdf59cb9f9d8)に書いてある、標準入力をList化したりしてるMainクラスから呼び出す予定だし・なんか継承したりしてるYO!!ちな、Mainを実行して標準入力から入力するのクソ面倒くさいので、
Java編については問題の入力例をパラメータにしたテスト
Java Gold 例題 並列処理
“`java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;public class CachedThreadPoolTest {
private static final ExecutorService threadPool = Executors./* insert code */
public static void main(String[] args) {
startServer();
}public static void startServer() {
for(int i = 0; i < 6; i++) { final int requestNumber = i; threadPool.submit(() -> {
handleRequest(requestNumber);
});
}
threadPool.shutdown();
}public static void ha
[paiza]toArrayに激ハマり(長テーブルのうなぎ屋 (paizaランク B 相当)
# Javaってこんな面倒くさい言語だっけ?
ココ最近(直近2~3念ぐらい)、
型定義はあれど比較的制限ユルユルなJavaScriptやTypeScriptばかりやってたお陰で、
Javaで問題解くのにめっちゃ時間かかってしまってる。。。
ほんと、何なんだよこのクソ言語。。。(実力不足https://paiza.jp/works/mondai/b_rank_skillcheck_sample/long-table
# チェック処理とかは端折ってる
/** ここから定型文 */
ここで記載したクラスについては、
[こっちの記事](https://qiita.com/AsilHatake/items/40204293bdf59cb9f9d8)に書いてある、標準入力をList化したりしてるMainクラスから呼び出す予定だし・なんか継承したりしてるYO!!ちな、Mainを実行して標準入力から入力するのクソ面倒くさいので、
Java編については問題の入力例をパラメータにしたテストクラスとかも作って公開するYO!!開発・実行環境はこんな感
Paiza×Qiitaキャンペーン 全問Javaで解説してみた【C 宝くじ 編】
# 問題へのリンク
https://paiza.jp/works/mondai/c_rank_skillcheck_archive/lottery
# 解答コード
詳細
~~~
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
final int B = scanner.nextInt();
final int N = scanner.nextInt();StringBuilder sb = new StringBuilder();
Lottery lottery = new Lottery(B);
for (int i = 0; i < N; i++) { final int A = scanner.nextInt(); sb.append(lottery.getWi
[paiza]シリをもげ!(みんなでしりとり (paizaランク B 相当)
# 大人になれない僕らの
無敵フォルゴレと強力わかもとビクトリームがめっちゃ好き。
キャッチマイハート、ベリーメロン(ベリーメロン
ぶるぁあぁあぁあ~っ!!https://paiza.jp/works/mondai/b_rank_skillcheck_archive/word_chain
# チェック処理とかは端折ってる
/** ここから定型文 */
ここで記載したクラスについては、
[こっちの記事](https://qiita.com/AsilHatake/items/40204293bdf59cb9f9d8)に書いてある、標準入力をList化したりしてるMainクラスから呼び出す予定だし・なんか継承したりしてるYO!!ちな、Mainを実行して標準入力から入力するのクソ面倒くさいので、
Java編については問題の入力例をパラメータにしたテストクラスとかも作って公開するYO!!開発・実行環境はこんな感じ
– VSCode
– Java 17
– jUnit 5.9
– mavenpom.xmlはこん
Paiza×Qiitaキャンペーン 全問Javaで解説してみた【C 野球の審判 編】
# 問題へのリンク
https://paiza.jp/works/mondai/c_rank_skillcheck_archive/umpire
# 解答コード
詳細
~~~
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
final int N = scanner.nextInt();StringBuilder sb = new StringBuilder();
Umpire umpire = new Umpire();
for (int i = 0; i < N; i++) { final String S = scanner.next(); sb.append(umpire.call(S)).append("\n"); } System.out.print
Javaで「UNICODE_CASEフラグ(Unicode準拠の文字でも大文字と小文字を区別しない)」の動作を確認してみた
# 概要
Javaで「UNICODE_CASEフラグ(Unicode準拠の文字でも大文字と小文字を区別しない)」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/regex/index22.html
# 実装
以下のファイルを作成しました。
“`JSample22_1.java
import java.util.regex.*;class JSample22_1{
public static void main(String[] args){
String target1 = “book”;
String target2 = “BOOK”;String regex = “book”;
Pattern p1 = Pattern.compile(regex);Matcher m1_1 = p1.matcher(target1);
System.out.println(target1 + “:” + m1_1.find());
Matche