JAVA関連のことを調べてみた2022年10月16日

JAVA関連のことを調べてみた2022年10月16日

Bランクレベルアップメニュー 文字の重複カウント 解答

# STEP: 25 文字列の長さ

## 問題

https://paiza.jp/works/mondai/prob60/string_count_0

## 解答

“`java:step25.java
import java.util.*;

public class Main {
public static void main(String[] args) {

Scanner sc = new Scanner(System.in);
String line = sc.nextLine();

// 文字数を取得
int length = line.length();

System.out.println(length);

sc.close();
}
}

“`

## 結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.

元記事を表示

ABC273A~Eの解答[Java]

## はじめに
今回もA~Dはコンテスト中、Eはコンテスト後に解いたものを載せようと思います。

では、見ていきましょう。

## A – A Recursive Function
問題文は[こちら](https://atcoder.jp/contests/abc273/tasks/abc273_a)

定義通り再帰しても良いですが、これは1~Nの総乗なのでfor文で回してやれば良いです。
“`A.java
class Main{

static Library System = new Library(java.lang.System.in,java.lang.System.out);

public static void main(String[] args){

//Nの受け取り
int N = System.in.nextInt();

//初期解
int answer = 1;
//f(0)=1、f(1)=1なので2から
for(int i=2;i<=N;i++) answer *= i; //答えの出力 System.ou

元記事を表示

Bランクレベルアップメニュー 指定範囲だけ大文字 解答

# STEP: 18 文字列の分割

## 問題

https://paiza.jp/works/mondai/prob60/substring_upper_0

## 解答

“`java:step18.java
import java.util.*;

public class Main {
public static void main(String[] args) {

Scanner sc = new Scanner(System.in);
doAStringBreak(sc);
sc.close();
}

/**
* 文字列改行をする関数
*
* @param sc 標準入力
*/
public static void doAStringBreak(Scanner sc){

while(sc.hasNext()){
System.out.println(sc.

元記事を表示

Java: Spring APIのバリデーション実装について

## はじめに
– とあるプロジェクトでJava × SpringでAPIを製造したのですが、その際にバリデーションについて調査したので、備忘録として内容をまとめてみました
– Java × Spring でAPIを作成した際にリクエスト段階でバリデーションチェックをしたいときに有効

## 環境
– Java 11
– Spring Boot 2系
– Lombok

## 前提
– Java × Spring でWeb APIを実装
– APIリクエスト時に、RequestDTOを用いて**送信されるJSONリクエストをRequestDTOにマッピングする想定**

## Spring / APIのバリデーション実装
– Springは、Java標準であるJSR-303のBean Validationをサポートしています。Spring MVCでの開発においては、Bean Validationを利用してバリデーションをする方法が推奨されています。

※ **JSR-303:Bean Validation**は「**JavaBeansのプロパティが取り得る値や条件を、制約のアノテーショ

元記事を表示

Javaの隠された (しかも、ちょっと面白い) 文法 3選

# この記事は?
この記事は**知名度がかなり低そうなJavaの文法**を、独断で3つ選んで紹介するものです。

動作確認したJavaのバージョンは OpenJDK19 ですが、Java8 の時にはこれらの文法が既にありました。

では、早速行ってみましょう。

# 1. ラベル
https://docs.oracle.com/javase/specs/jls/se19/html/jls-14.html#jls-14.7

文(といっても専らforやwhile文)には、 **ラベル** をつけることができます。
for文の中のbreakやcontinueで参照することで、ラベルがついたループを抜けたり、もう一回やり直すことができます。

“`java
var list = new ArrayList>();

// マス目を x + y で埋めていくが、 x + y が6以上になった時点でやめる
label:
for(int x=0; x<5; x++){ list.add(new ArrayList());
fo

元記事を表示

PostgreSQLのJDBCドライバーで、timestampとtimestamp with time zoneのjava.sql.Typesでのデータ型が同じになってしまうという話

# What’s?

PostgreSQLをJDBCで扱っていて、`timestamp with time zone`型を使った時にちょっと困ったことになりまして。

調べてみました。

結論から言うと、JDBCのメタデータで見た時に`timestamp`と`timestamp with time zone`型を区別することができません。

# PostgreSQLのJDBCドライバーとDate and Time API(JSR-310)

PostgreSQLのJDBCドライバーのオフィシャルサイトはこちら。

https://jdbc.postgresql.org/

ドキュメント内に、Date and Time API(JSR-310)との関係が書かれています。

[Issuing a Query and Processing the Result / Using Java 8 Date and Time classes](https://jdbc.postgresql.org/documentation/query/#using-java-8-date-and-time-cla

元記事を表示

JavaプロジェクトからSQSにキューを送信してlambdaをキックする

# 前提
業務でこんな処理を実装する気がするので、簡単に予習してみます。
今回は動くか検証のみなので、ローカルで起動したJavaアプリケーション(Spring Boot)からSQSにメッセージを送信してみます。

本当はlambdaからrdsへ登録・更新する処理を実装したかったのですが、それはまた別の機会に。(なのでSQSやlambdaの名前がmergeXXXXみたいになってます。)

![lambda-sqs.drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2433961/3a229f2f-f2b9-d425-1c1e-6ec78dd46b8e.png)

# 環境
– macOS: 12.6
– IntelliJ IDEA: 2022.2.3 (Community Edition)
– Gradle: 7.5
– Java: temurin 17.0.3

# 手順

## プロジェクトの作成

#### spring initializrでプロジェクト作成
[https://start

元記事を表示

Oracle Java Silver SE 11 に合格する方法とおすすめ書籍

# はじめに
こんにちは,来海くるみ(@walnut-pro)です.
Oracle Java Silverの試験に無事合格したので,報告とともに,合格するために行ったことを記事にしようと思います.

# 前回の記事
https://qiita.com/walnut-pro/items/d97e6293bc9964d0da45

# 背景
自分はこれまでにPythonでの深層学習やJavaScriptでのWeb開発をしていた経験がありましたが,Javaに関しては(ほぼ)知識ゼロでした.これからバックエンドの開発もしていきたいな〜,Javaを使っていきたいな〜と思っていたところ,会社の先輩から「Oracle Java Silverの資格をとってみよう」とアドバイスをいただきました.

# Oracle Java Silverとは
参考資料
Java SE 11 Programmer I (1Z0-815-JPN) 試験

https://www.oracle.com/jp/education/certification/jse11-5570635-

元記事を表示

AWS SDKをv1→v2にアップデートする

## 経緯

現在携わっているPJでAWS SDKを使用してるのですが、処理実行時に`java.lang.NoSuchFieldError: CLIENT_ENDPOINT`が発生するようになり、調べたところ、サービスによってライブラリバージョンv1とv2が混在していることが原因だったため、全てv2に揃える対応を行いました。
(cf. [Github issue](https://github.com/aws/aws-sdk-java/issues/2582))

## 前提

* ビルドツールはMavenを使用
* 利用サービスは以下
* Cognito
* S3
* SES
* SQS

## 概要・基本方針

v1とv2の基本的な違いは公式ドキュメント [AWS SDK for Java 1.x と 2.x の相違点](https://docs.aws.amazon.com/ja_jp/sdk-for-java/latest/developer-guide/migration-whats-different.html)に記載されているのと、各サービ

元記事を表示

「プロになるJava」でJava入門したい人へ

# 概要
「プロになるJava」を読んだ感想と内容、おすすめできる人などを書いていきたいと思います。
かなり良い本だと思うので是非読んでいただきたいです。

# 前提
私はJavaの開発歴が1年ちょっとあるエンジニアです。すでにJavaに関してはProgateや「スッキリわかるJava入門」、その他教材、研修などで入門済みです。業務でもJavaを使っているのでこれらの視点から「プロになるJava」について書きたいと思います。

# 「プロになるJava」の概要
「プロになるJava」の構成ですが以下のようになっています。
+ Javaを始める準備
+ Javaの基本
+ Javaの文法
+ 高度なプログラミング
+ ツールと開発技法
+ Webアプリケーション開発

各章の章立てだけ見れば最後のSpring bootを用いての実践的な開発以外は”基本⇒文法⇒ツールの使い方”という一般的な流れですが、それぞれの章の中身の構成を見るとかなり他の技術書とは異なっています。

他の技術書ではJavaの基本を大まかに説明した後はコンソール表示、計算、条件分岐、繰り返し処理、メソッド、継承などの文

元記事を表示

【IntelliJ IDEA】jarファイル実行でエラーが出て、死にそうになった話。

多分、ビルドシステムとか統合開発環境に詳しい人には、何て事ない話なのでしょうが、解決に死ぬ程、苦労したので、備忘録として記載します。環境は、Mac M1です。

IntelliJで、jarファイルを作成して、そのjarファイルを実行すると下記のエラーが発生。

“`
UserX@UserX-mac HelloWorld_jar % jar -tf HelloWorld.jar
Error: Invalid or corrupt jarfile HelloWorld.jar
“`

IntelliJ上で、runすると、「プロセスは終了コード 0 で終了しました」と正常終了しているので、コード自体は間違ってないが、jarファイルが実行できていないと言う状況です。
![1015.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1665829/ef570b30-57bb-858c-144b-050c5e992018.png)

Jarファイルの中身を見ると、こんな感じ。
“`
UserX@UserX-ma

元記事を表示

lucene の CJKAnalyzer で Trigram を可能にする。

https://qiita.com/YmBIgo/items/7dafa6a31cc6fe9a0f8c

の続きのような記事です。
読んでいなかったら、読んでから来るといいと思います。

成果物

https://github.com/YmBIgo/CJKAnalyzer_mini_patch/blob/master/CJKTrigramFilter.java

## Lucene の CJK、Bigram しか対応しておらず…
Lucene の Tokenizer には、CJK という 日本語韓国語中国語 を n-gram にしてくれるものがあるんですが、それが Bigram 対応のみで Trigram 対応してくれていません。なので、ここでは、Trigram 対応の Java ファイルを作ろうと思います。

## Trigram にするためのメソッド

メソッドは、`flushTrigram` と `hasBufferedTrigram` があります。`flushTrigram` では attributeSource に登録された `CharTermAttribute` などに

元記事を表示

【Java】今日勉強したこと

# Javacコマンドとは
Javaのプログラムをコンパイルするコマンド
# コンパイルとは
プログラミング言語を機械語に翻訳すること
# Javaコマンドとは
コンパイルしたものを実行するコマンド
# JavaのEOLとは
JDKのバージョンのサポート停止(End Of Life)

元記事を表示

JavaでWordドキュメントを画像に変換する方法

画像は編集しにくく、見やすいため、開発者はしばしばWordドキュメントを画像に変換する必要があります。無料の[Free Spire.Doc for Java](https://jp.e-iceblue.com/introduce/free-spire-doc-for-java.html)を使用すれば、Javaアプリケーションで簡単にWordドキュメントを高品質に画像化することができます。この記事では、**Wordドキュメントをビットマップ画像とベクター画像に変換する方法**を示しています。

– **[Wordドキュメントをビットマップイメージ(BMP、Jpeg、Png、GIF)に変換する](#wordドキュメントをビットマップイメージbmpjpegpnggifに変換する)**
– **[Wordドキュメントを高解像度の画像に変換する](#wordドキュメントを高解像度の画像に変換する)**
– **[WordドキュメントをSVGに変換する](#wordドキュメントをsvgに変換する)**
– **[WordドキュメントをTIFFに変換する](#wordドキュメントをtiffに変換する

元記事を表示

【Java】 PDFドキュメントにリストを作成する方法

関連する項目をリストでグループ化すると、情報が読みやすくなります。一般的なリストには、順序付きリスト(番号付きリストなど)、順序なしリスト(箇条書きリストなど)、入れ子リスト(複数レベルのリスト)という3つのタイプがあります。今回は、[Free Spire.PDF for Java](https://jp.e-iceblue.com/introduce/free-spire-pdf-for-java.html)を使って、**PDFに番号付きリスト、箇条書きリスト、複数レベルのリストを作成する方法**を紹介します。

– **[番号付きリストを作成する](#番号付きリストを作成する)**
– **[箇条書きリストを作成する](#箇条書きリストを作成する)**
– **[ネストされたリストを作成する](#ネストされたリストを作成する)**

## 【依存関係の追加】

> **この方法は、無料のFree Spire.PDF for Javaが必要ですので、先にjarファイルをインポートしてください。**

### 1. Maven

Maven を使用している場合、プロジェクトの pom

元記事を表示

DocまたはDocxのWordドキュメントからPDFドキュメントへの変換(Java)

Wordドキュメントを共有する前に、それをPDFファイルに変換することで、異なるデバイス上で同じように見えるようにし、MS Wordを持っていない受信者がそれを見ることができるようにすることができます。この記事では、[Free Spire.Doc for Java](https://jp.e-iceblue.com/introduce/free-spire-doc-for-java.html)を使用して**WordドキュメントをPDF、PDF/A、パスワードで保護されたPDFに変換する方法**を説明します。

– **[WordをPDFに変換する](#wordをpdfに変換する)**
– **[WordをPDF/Aに変換する](#wordをpdfaに変換する)**
– **[Wordをパスワードで保護されたPDFに変換する](#wordをパスワードで保護されたpdfに変換する)**

## 【依存関係の追加】

> **この方法は、無料のFree Spire.Doc for Javaが必要ですので、先にjarファイルをインポートしてください。**

### 1. Maven

Mave

元記事を表示

Webアプリのディレクトリ構成_MVC

簡単なWebアプリを元にMVCを理解する。

**ディレクトリ構成**
プロジェクト名/
│ │ │ │ │ │ ┣.gradle
│ │ │ │ │ │ ┣idea
│ │ │ │ │ │ ┣build
│ │ │ │ │ │ ┣gradle
│ │ │ │ │ │ ┗src/
│ │ │ │ │ │ │ │ ┣main/
│ │ │ │ │ │ │ │ │ │ ┣java/
│ │ │ │ │ │ │ │ │ │ │ │ ┣pkg_name/
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┣pkg_entity

元記事を表示

Selenideで画面全体のスクリーンショットが簡単に撮れるようになってた

# このドキュメントは?
テストの自動化のハードルが高い方々に向けて、まず最初の一歩を踏み出しやすくするためのツールを作ろうと日々少しずつ作っている中で、「あれ?」と躓いたポイントをメモしておくためのページとして[「つまずき記事」](https://qiita.com/edy_jaki/items/e943584016f4b3d19e1b)を作成したのだけど、1記事1ネタの方がいいなと思ったので[「つまずき記事」](https://qiita.com/edy_jaki/items/e943584016f4b3d19e1b)はそのままにして新しいページを作成することにした。
結果的に皆さんの開発シーンの中で同じような躓きがあったら役立つかもしれないのと、何より忘れっぽい自分のための備忘録。

## 躓き
[「つまずき記事」](https://qiita.com/edy_jaki/items/e943584016f4b3d19e1b) の通り、[aShot](https://github.com/pazone/ashot) を使って [Selenium](https://www.selen

元記事を表示

【Java】今日勉強したこと

# JDKとは(Java Development Kit)
javaのプログラムを作ったり実行したりするもの。

# システム環境変数とは
「javaはここのフォルダにあるよー」とコンピューターに教えるもの。

# PATHとは
javaのプログラム本体が格納されているところ。

元記事を表示

【v43】4本値の日付調整ツールがチャートDBファイルをRESTサーバーへ送信する

# はじめに

過去記事は「[auカブコム証券のkabuステーションREST APIに関する記事一覧](https://qiita.com/hiuchida/items/611ba237dc1d1f6e3dca)」。

44番目の記事で、ツールを統合したカレンダー登録ツールと、4本値の日付調整ツールから、RESTサーバーへ更新したチャートDBファイルを送信する。

# ゴール

51番目、52番目の記事のPUSH APIから受信したチャートデータは重複をチェックしたが、今回のツールは、APIを実行する環境側をマスターとするため、毎回ファイル全体を送信して、RESTサーバー側にコピーを作る。

# ベースとなるソース

v38のr10をベースに、v43のr15を作成する。

– MainChartCalendar_r10 -> MainChartCalendar_r15
– MainChartDataDaily_r10 -> MainChartDataDaily_r15
– MainChartDataHourly_r10 -> MainChartDataHourly_r15

# 実装

元記事を表示

OTHERカテゴリの最新記事