- 1. [paiza]どんどん足していこうね~(足し算 (paizaランク D 相当)
- 2. [paiza]ちっちゃいことは気にするな(一番小さい値 (paizaランク D 相当)
- 3. [paiza]若さ、若さって何だ?(文字の一致 (paizaランク D 相当)
- 4. Javaで「UNIX_LINESフラグ(\nのみ行末記号として認識される)」の動作を確認してみた
- 5. [paiza]Javaで解いていく事前準備編
- 6. Nablarch v6のウェブプロジェクト用アーキタイプを使って、ウェブアプリケーションを試す
- 7. Spring Securityでの認証における認証用パスワードのハッシュアルゴリズムを更新する
- 8. Springで入力パラメータが数値の場合に入力文字種を半角文字に限定する
- 9. 【Java】Apache CamelとApache CXFを組み合わせSOAP受信アプリを作成する
- 10. Spring Data JPAを使ったデータベース操作を簡単にまとめ
- 11. 解いてみた。「Aランク:お菓子の詰め合わせ」
- 12. Springにおける通常のコントローラーとRESTコントローラーの違いと使い方
- 13. Java Gold 例題 排他制御
- 14. Javaで「DOTALLフラグ(ドット(.)が行末記号とマッチする)」の動作を確認してみた
- 15. 解いてみた。「Aランク:じゃんけんの手の出し方」
- 16. Java APIについて、まとめてみました
- 17. Javaで「MULTILINEフラグ(複数行モードを有効にする)」の動作を確認してみた
- 18. Eclipseインストールマニュアル
- 19. Android Studioでハマった話
- 20. 解いてみた。「Aランク:ハノイの塔」
[paiza]どんどん足していこうね~(足し算 (paizaランク D 相当)
# しまっちゃうおじさん
スナドリネコさんみたいなビジュアルなのに、
やってることは拉致・監禁という鬼畜なおじさん。
そりゃ、ぼのぼのも泣くわ…https://paiza.jp/works/mondai/d_rank_skillcheck_sample/addition
# チェック処理とかは端折ってる
/** ここから定型文 */
ここで記載したクラスについては、
[こっちの記事](https://qiita.com/AsilHatake/items/40204293bdf59cb9f9d8)に書いてある、標準入力をList化したりしてるMainクラスから呼び出す予定だし・なんか継承したりしてるYO!!ちな、Mainを実行して標準入力から入力するのクソ面倒くさいので、
Java編については問題の入力例をパラメータにしたテストクラスとかも作って公開するYO!!開発・実行環境はこんな感じ
– VSCode
– Java 17
– jUnit 5.9
– mavenpom.xmlはこんな感じ
“`
[paiza]ちっちゃいことは気にするな(一番小さい値 (paizaランク D 相当)
# きょ~れつ~(ワカチコワカチコ
小さい数を探す(ここらへんの文考えるのめんどくなってきたhttps://paiza.jp/works/mondai/d_rank_skillcheck_sample/min_num
# チェック処理とかは端折ってる
/** ここから定型文 */
ここで記載したクラスについては、
[こっちの記事](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ランク D 相当)
# 振り向かないことさ(あばよ涙
タイトルはいつも適当につけてます。タイトル詐欺でスイマセン。
そんなこんなで、正式にJava版(ジャーーーバーン)突入!!
まずはね、Dランクでイキリ倒してやろうかと(よろしく勇気https://paiza.jp/works/mondai/d_rank_skillcheck_sample/diff_str
# チェック処理とかは端折ってる
/** ここから定型文 */
ここで記載したクラスについては、
[こっちの記事](https://qiita.com/AsilHatake/items/40204293bdf59cb9f9d8)に書いてある、標準入力をList化したりしてるMainクラスから呼び出す予定だし・なんか継承したりしてるYO!!ちな、Mainを実行して標準入力から入力するのクソ面倒くさいので、
Java編については問題の入力例をパラメータにしたテストクラスとかも作って公開するYO!!開発・実行環境はこんな感じ
– VSCode
– Java 17
– jUni
Javaで「UNIX_LINESフラグ(\nのみ行末記号として認識される)」の動作を確認してみた
# 概要
Javaで「UNIX_LINESフラグ(\nのみ行末記号として認識される)」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/regex/index20.html
# 実装
以下のファイルを作成しました。
“`JSample20_1.java
import java.util.regex.*;class JSample20_1{
public static void main(String[] args){
String target1 = “Thank You!\r\nGood Bye”;
String target2 = “Good Bye\nThank You!”;
String target3 = “Good Bye\r\nThank You!”;String regex = “Bye$”;
Pattern p1 = Pattern.compile(regex, Pattern.MULTILINE);Matcher m1_1
[paiza]Javaで解いていく事前準備編
# Java編始まるよ~
そんなこんなでJavaScript編が完走できたので、次はJavaでダラダラと解いていくZeeee!!# とりあえず。。。
いきなり問題解いてもアレなので、最初に標準入力から値を受け取ってStringのListに変換する部分だけを実装しようかと。公式でも載ってる↓を見てね
https://paiza.jp/guide/samplecode.html
ほら、これから投稿していくソースは、標準出力を受け取った後のソースにしたいため。
“`java:実行するメインクラス
package jp.co.asil;import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;public class Main {
public static void main(String[] args) {
Listlist = new ArrayList<>();
try (Scanner sc = new Sc
Nablarch v6のウェブプロジェクト用アーキタイプを使って、ウェブアプリケーションを試す
# What’s?
前にこんなことをやりました。
https://qiita.com/charon/items/91e04b713570a81ca108
この時はNablarch 5のRESTful ウェブサービスを対象にしていましたが、今回は以下のお題でやってみようかなと思います。
– Nablarch 6u1を使う
– ウェブプロジェクト用アーキタイプからウェブアプリケーションプロジェクトを作成する
– データベースをPostgreSQLに切り替える# 環境
今回の環境はこちらです。
“`shell
$ java –version
openjdk 21.0.4 2024-07-16
OpenJDK Runtime Environment (build 21.0.4+7-Ubuntu-1ubuntu222.04)
OpenJDK 64-Bit Server VM (build 21.0.4+7-Ubuntu-1ubuntu222.04, mixed mode, sharing)$ mvn –version
Apache Maven 3.9.8 (36645
Spring Securityでの認証における認証用パスワードのハッシュアルゴリズムを更新する
# はじめに
長い期間運用しているサイトだと、認証用のパスワードのハッシュアルゴリズムが陳腐化してしまうことが少なくありません。
その問題に対応するための仕組みがSpring Securityには備えられています。
そして、その仕組みは現在使用中のシステムにおいても適用できるようになっています。
ここでは、Spring Securityにて、パスワードのハッシュアルゴリズムを更新する方法を紹介します。# パスワードエンコーダーの定義
DelegatingPasswordEncoderを使用することで、複数のパスワードエンコーダーを登録することが出来ます。
それにより、新しいハッシュアルゴリズムが出来た時に、新たなエンコーダーを登録することで、同一システム内に複数のハッシュアルゴリズムの共存が可能になります。“`java:ApplicationConfig
@Bean(“passwordEncoder”)
public PasswordEncoder passwordEncoder() {
Map
Springで入力パラメータが数値の場合に入力文字種を半角文字に限定する
# はじめに
Springにて入力パラメータとしてFormに数値型(IntegerやLong)で定義した場合、全角数字で入力した場合も正常にバインドされます。
しかし、これだと、半角数字だけを許容したいという場面に対応出来ません。
入力チェックのためだけにフィールドをString型で定義して半角数字のみを許容するようにPatternアノテーションを付与して入力規則を定義するのも何だかな、と思っていました。
そこで、なんかいい方法がないか探していたところ、WebDataBinderを利用しCustomNumberEditorを拡張したクラスを登録すればよいことがわかりました。# やり方
まず、CustomNumberEditorを拡張したクラスを作成します。
“`java:CustomNumberEditorを拡張したクラス
public class SampleCustomNumberEditor extends CustomNumberEditor {private final Class extends Number> numberClass;
pu
【Java】Apache CamelとApache CXFを組み合わせSOAP受信アプリを作成する
# はじめに
本記事では、Apache CamelとApache CXFを組み合わせて、Javaコードファーストで作成したSOAP受信アプリを扱う。
下記の背景があり、情報共有として記事を作成した。
– Java、Apache Camel、Apache CXFの使用経験がなく、学習内容の定着を目的のアウトプット
– GitHub上の[Apache Camelの公式サンプル](https://github.com/apache/camel-examples/tree/main#welcome-to-the-apache-camel-examples) に、Apache CamelとApache CXFを組み合わせたサンプルが存在しない
– ネットでApache CamelとApache CXFについて検索したとき、ヒットする情報が少ないうえに、古い(リンク切れもある)
– ネットでApache Camel&Apache CXF& Springboot(あるいはSpring)を組み合わせたサンプルはヒットするが、組み合わせが増えると複雑化するので、今回はApache Camel&Apac
Spring Data JPAを使ったデータベース操作を簡単にまとめ
Spring Data JPAを使用すると、Javaアプリケーションでデータベースとの連携を効率的に行うことができます。
## 1. プロジェクト設定
### Mavenの場合
“`xml
org.springframework.boot
spring-boot-starter-data-jpa
org.postgresql
postgresql
runtime
“`### Gradleの場合
“`groovy
// build.gradle
dependencies {
implementation ‘org.springframework.boot:spring-boot-s
解いてみた。「Aランク:お菓子の詰め合わせ」
# 問題
[「Aランク:お菓子の詰め合わせ」](https://paiza.jp/works/mondai/a_rank_skillcheck_archive/school_hiking)# コード
Javaで解いてみました。“` Java
import java.util.*;public class Main {
private static final int MAX_VAL = 99999;
private static final int MIN_VAL = 0;private static int nN;
private static int nX;
private static int[] anx;private static int nMaxKind;
private static int nMinChange;public static void main(String[] args) {
Scanner sc = new Scanner(Sys
Springにおける通常のコントローラーとRESTコントローラーの違いと使い方
Springフレームワークでは、通常のコントローラーとRESTコントローラーを使って異なるアプローチでWebアプリケーションを構築することができます。以下では、それぞれの違いと使い方について解説します。
## 通常のコントローラーとThymeleaf
通常のコントローラーは、HTMLテンプレートを生成し、サーバーサイドでレンダリングしてクライアントに送信するのに適しています。主に以下のような特徴があります:
– **ビューレンダリング**: ThymeleafやJSPなどのテンプレートエンジンを使用してHTMLを生成し、ユーザーに表示します。
– **フォーム処理**: ユーザーの入力を受け取り、サーバーサイドで処理し、結果をHTMLとしてレスポンスします。
– **セッション管理**: セッションを使用してユーザーの状態を管理し、各リクエスト間で情報を保持します。例えば、次のようにコントローラーを定義してThymeleafでビューを生成します:
“`java
@Controller
public class WebController {@GetMappin
Java Gold 例題 排他制御
以下のコードについて言及している選択肢のうち、正しいものを1つ選んでください。
“`java
class CurryMadeTask implements Runnable {
private final int teamNumber;
private final ReentrantLock[] ingredientLocks;
private final ListcompletedTeams;
private static final String[] INGREDIENTS = {“たまねぎ”, “にんじん”, “じゃがいも”, “牛肉”};
private static final int[] COOKING_TIMES = {2, 1, 4, 3};public CurryMadeTask(int teamNumber, ReentrantLock[] ingredientLocks, List
completedTeams) {
this.teamNumber = teamNumber;
this.ingredi
Javaで「DOTALLフラグ(ドット(.)が行末記号とマッチする)」の動作を確認してみた
# 概要
Javaで「DOTALLフラグ(ドット(.)が行末記号とマッチする)」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/regex/index19.html
# 実装
以下のファイルを作成しました。
“`JSample19_1.java
import java.util.regex.*;class JSample19_1{
public static void main(String[] args){
String target1 = “Lemon is yellow.Strawberry is red
“;
String target2 = “Lemon is yellow.\nStrawberry is red
“;
String regex = “
.*
“;
Pattern p1 = Pattern.compile(regex);Matcher m1_1 = p1.matcher(target1);
解いてみた。「Aランク:じゃんけんの手の出し方」
# 問題
[「Aランク:じゃんけんの手の出し方」]()# コード
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();String sS = sc.next();
// 相手の出す手の種類の集計
int nGu = 0;
int nChoki = 0;
int nPa = 0;for (int i = 0; i < nN; i++) { switch(sS.charAt(i)) { case 'G':
Java APIについて、まとめてみました
## はじめに
Java API(Application Programming Interface)は、Javaプログラミング言語で開発されたアプリケーションが他のソフトウェアやサービスとやり取りするための一連の定義やプロトコルです。Java APIは、Javaプラットフォームの一部として提供される標準ライブラリや、サードパーティのライブラリを含む広範な機能を提供します。今回は、このJava APIについて、まとめてみました。## Java APIの基本概念
1. **パッケージ**
Java APIは、関連するクラスやインターフェースをまとめたパッケージとして提供されます。例えば、`java.util`パッケージには、コレクションフレームワークや日付・時間の操作に関するクラスが含まれています。2. **クラスとインターフェース**
APIは、クラスやインターフェースの形で提供されます。クラスはオブジェクトの設計図であり、インターフェースはクラスが実装すべきメソッドのセットを定義します。3. **メソッド**
クラスやインターフェースには、特定の機能を実行するためのメソ
Javaで「MULTILINEフラグ(複数行モードを有効にする)」の動作を確認してみた
# 概要
Javaで「MULTILINEフラグ(複数行モードを有効にする)」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/regex/index18.html
# 実装
以下のファイルを作成しました。
“`JSample18_1.java
import java.util.regex.*;class JSample18_1{
public static void main(String[] args){
String target1 = “apple is red\nlemon is yellow”;
String target2 = “lemon is yellow\napple is red”;String regex = “^apple”;
Pattern p1 = Pattern.compile(regex);Matcher m1_1 = p1.matcher(target1);
System.out.println(target
Eclipseインストールマニュアル
:::note
エクスプローラーの設定で,「拡張子の表示」と「隠しファイルの表示」をオンにしておくことをおすすめします.
:::# はじめに
Eclipseのインストール手順を解説します.Eclipse2021まではzipファイルのダウンロードの後,7-zipを用いて解凍する必要がありましたが,Eclipse2022以降は自己解凍機能が含まれたzipファイルをダウンロードするため7-zipを用いる必要がありません.
ではインストールに移りましょう.
# 参考資料
– 授業資料
– [Pleiades All in One ダウンロード](https://willbrains.jp/)
– [Eclipseのインストールから使い方まで~EclipseでJavaプログラムを実行してみよう!](https://proengineer.internous.co.jp/content/columnfeature/7853)# インストール
## zipファイルのダウンロード
まずは[https://willbrains.jp/](https://willbrains.jp/
Android Studioでハマった話
# はじめに
弊学の`Java`の講義では後半で`Android Studio`を用いたAndroidアプリの演習を行います.その際,計算機室のパソコンに入っている`Android Studio`バージョンと最新版(2023年現在)をインストールしたときの挙動が違いハマったので備忘録としてまとめます.# ハマったこと
計算機室の`Android Studio`では,演習で使うテンプレートとして画像の`Empty Activity`を選択すればいいです.しかし,最新版では`Empty Activity`を選択するとこのあとの画面で`Java`を選択できなくて詰みます.(`Kotlin`しか使えない)![スクリーンショット 2024-08-17 16.44.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3806676/d484ed1b-4cfd-20a9-075c-755ca8d95789.png)
# で,どうすればいいのか
ちょっと下にある`Empty Views Activity`を
解いてみた。「Aランク:ハノイの塔」
# 問題
[「Aランク:ハノイの塔」](https://paiza.jp/works/mondai/real_event/hanoi)# コード
Javaで解いてみました。“` Java
import java.util.*;public class Main {
private static ArrayList
> alst;
private static int nT;public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int nN = sc.nextInt();
nT = sc.nextInt();// 初期設定
alst = new ArrayList>();
for (int i = 0; i < 3; i++) { a