JAVA関連のことを調べてみた

JAVA関連のことを調べてみた
目次

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
– maven

pom.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

元記事を表示

Paiza×Qiitaキャンペーン 全問Javaで解説してみた【C みかんの仕分け 編】

# 問題へのリンク

https://paiza.jp/works/mondai/c_rank_skillcheck_archive/mikan

# 解答コード

詳細

~~~

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

final int N = scanner.nextInt();
final int M = scanner.nextInt();

StringBuilder sb = new StringBuilder();

for (int i = 0; i < M; i++) { final int W = scanner.nextInt(); int quotinent = W / N; int remainder = W % N; if (quo

元記事を表示

[paiza]めくりめくり(神経衰弱(オリジナル) (paizaランク B 相当)

# 一人での限界
いつもふざけたことばかり書いていますが、
一応、会社の一業務としてQiitaへの投稿をしてます。
完全に人選ミスですねw
最近paizaのコラボがあるお陰でネタに困らないですが、ほぼ一人で会社の顔として何かを発信するってなかなかしんどみの極み。
そろそろ書く人を増やしてもらって、[QiitaのOrganization](https://qiita.com/organizations)で1位取ってみたいところです。
※やるからには1番取ってみたいよね(頂上てっぺん獲るっショ

https://paiza.jp/works/mondai/b_rank_skillcheck_archive/concentration

# チェック処理とかは端折ってる
/** ここから定型文 */
ここで記載したクラスについては、
[こっちの記事](https://qiita.com/AsilHatake/items/40204293bdf59cb9f9d8)に書いてある、標準入力をList化したりしてるMainクラスから呼び出す予定だし・なん

元記事を表示

JavaのStream APIについて、まとめてみました。

## はじめに
Java 8から導入されたStream APIは、コレクションや配列などのデータの処理をより簡潔かつ関数的に記述するためのAPIです。従来のfor文を使ったループ処理と比較して、より直感的で、かつ並列処理にも対応できるという特徴があります。コレクションや配列などのデータソースに対して、宣言的な方法でデータ処理を行うことができます。ストリームAPIを使用すると、データのフィルタリング、マッピング、集計などの操作を簡潔に記述できます。
今回は、この「JavaのStream APIについて」まとめてみました。

### Stream APIの主な特徴

**宣言型** 何をしたいかを記述するだけで、具体的な処理の仕方はコンパイラが決定。
**遅延評価** 終端操作が実行されるまで、実際には処理が実行されない。
**並列処理** 並列ストリームを利用することで、マルチコアプロセッサの性能を最大限に引き出すことができる。
**関数型** ラムダ式やメソッド参照を用いて、処理を関数として表現する。

### Stream APIのパイプライン

Stream APIは、中間操作と

元記事を表示

Paiza×Qiitaキャンペーン 全問Javaで解説してみた【C Fizz Buzz 編】

# 問題へのリンク

https://paiza.jp/works/mondai/c_rank_skillcheck_sample/fizz-buzz

# 解答コード

詳細

~~~

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();

for (int i = 1; i <= N; i++) { if (i % 15 == 0) { sb.append("Fizz Buzz"); } else if (i % 3 == 0) { sb.append("Fizz"); } else if (i % 5 == 0) {

元記事を表示

NullPointerExceptionについて考えてみる。

# Nullとは
Javaにおけるnullポインターエクセプションとは、プリミティブ型にnullが設定されている状態でnull処理をされていない呼び出しが行われたときに発生する例外のことである。
例えば、
“`
import java.util.*;

public class Main {
public static void main(String[] args) throws Exception {
// Your code here!
String i=null;
System.out.println(i.length());
}
}
“`

上記のソースコードをコンパイルするとコンパイルは正常完了するが、実行の際に、実行時エラーとしてnullポインターエクセプションを出してしまう。

# 実務におけるnullポインターエクセプション例外の処理

実務では基本的にJavaとデータベースなどを組み合わせて使う場合が多い。データベースでnullが設定されている場合にはJava側に関してもnullが設定されてしまうこ

元記事を表示

Paiza×Qiitaキャンペーン 全問Javaで解説してみた【C 残り物の量 編】

# 問題へのリンク

https://paiza.jp/works/mondai/c_rank_skillcheck_archive/leftover

# 解答コード

詳細

~~~

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

final int M = scanner.nextInt();
final int P = scanner.nextInt();
final int Q = scanner.nextInt();

double numerator = M * (100 – P) * (100 – Q);
double denominator = 100 * 100;

double answer = numerator / denominator;

Sy

元記事を表示

解いてみた。「Sランク:島探し」

# 問題
[「Sランク:島探し」](https://paiza.jp/works/mondai/s_rank_skillcheck_sample/search-island)

# コード
Javaで解いてみました。

“` Java
import java.util.*;

class Pair {
public int x;
public int y;
public Pair(int x, int y) {
this.x = x;
this.y = y;
}
}

class Map {
public static final boolean EMPTY = false;
public static final boolean LAND = true;

public int nN;
public int nM;
public boolean[][] bMap;

public Map(int x, int y) {
nN = x;

元記事を表示

解いてみた。「Sランク:mod7占い」

# 問題
[「Sランク:mod7占い」](https://paiza.jp/works/mondai/s_rank_skillcheck_sample/mod7)

# コード
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[] anA = new int[nN];
for (int i = 0; i < nN; i++) { anA[i] = (int)(sc.nextLong() % 7); } // カード検索 int nCount = 0; for (int i = 0; i

元記事を表示

Javaで「COMMENTSフラグ(パターンの中にコメントを記述する)」の動作を確認してみた

# 概要

Javaで「COMMENTSフラグ(パターンの中にコメントを記述する)」の動作を確認してみました。
以下のページを参考にしました。

https://www.javadrive.jp/start/regex/index21.html

# 実装

以下のファイルを作成しました。
“`JSample21_1.java
import java.util.regex.*;

class JSample21_1{
public static void main(String[] args){
String target = “AZ-243”;
String regex = “[a-zA-Z]{2} # 製品名” +
“- # ハイフン” +
“[0-9]{3} # 製品コード”;
Pattern p = Pattern.compile(regex, Pattern.COMMENTS);

Matcher m = p.matcher(t

元記事を表示

Paiza×Qiitaキャンペーン 全問Javaで解説してみた【D N倍の文字列 編】

# 問題へのリンク

https://paiza.jp/works/mondai/d_rank_skillcheck_archive/square

# 解答コード

詳細

~~~

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(N);

for (int i = 0; i < N; i++) { sb.append("*"); } System.out.println(sb); scanner.close(); } } ~~~

# 解説

詳細

入出力(

元記事を表示

[paiza]売り切れ!在庫の山!(【殿堂入りキャンペーン】残り物の量 (paizaランク C 相当)

# 瓜売りが瓜売りに来て瓜売れ残り売り売り帰る瓜売りの声
うりうりウルセェ!

https://paiza.jp/works/mondai/c_rank_skillcheck_archive/leftover

# チェック処理とかは端折ってる
/** ここから定型文 */
ここで記載したクラスについては、
[こっちの記事](https://qiita.com/AsilHatake/items/40204293bdf59cb9f9d8)に書いてある、標準入力をList化したりしてるMainクラスから呼び出す予定だし・なんか継承したりしてるYO!!

ちな、Mainを実行して標準入力から入力するのクソ面倒くさいので、
Java編については問題の入力例をパラメータにしたテストクラスとかも作って公開するYO!!

開発・実行環境はこんな感じ

– VSCode
– Java 17
– jUnit 5.9
– maven

pom.xmlはこんな感じ

“`xml:pom.xml

元記事を表示

[paiza]フィズバズ(Fizz Buzz (paizaランク C 相当)

# 3がつくときだけアホになるやつではない
【世界の…】が付くと、山ちゃん(手羽先のアレ)が思いついちゃう。

https://paiza.jp/works/mondai/c_rank_skillcheck_sample/fizz-buzz

# チェック処理とかは端折ってる
/** ここから定型文 */
ここで記載したクラスについては、
[こっちの記事](https://qiita.com/AsilHatake/items/40204293bdf59cb9f9d8)に書いてある、標準入力をList化したりしてるMainクラスから呼び出す予定だし・なんか継承したりしてるYO!!

ちな、Mainを実行して標準入力から入力するのクソ面倒くさいので、
Java編については問題の入力例をパラメータにしたテストクラスとかも作って公開するYO!!

開発・実行環境はこんな感じ

– VSCode
– Java 17
– jUnit 5.9
– maven

pom.xmlはこんな感じ

“`xml:pom.xml

元記事を表示

[paiza]アルミ缶の上にある。。。(みかんの仕分け (paizaランク C 相当)

# 仕分けと聞くと。。。
【2位じゃダメなんでしょうか?】の2位にすらなれなかった人が思い出されるなぁ。。。
仕事をするうえでも、タスクの仕分けを上手くして順序・効率よく作業が出来るようにしないといけないですね。

https://paiza.jp/works/mondai/c_rank_skillcheck_archive/mikan

# チェック処理とかは端折ってる
/** ここから定型文 */
ここで記載したクラスについては、
[こっちの記事](https://qiita.com/AsilHatake/items/40204293bdf59cb9f9d8)に書いてある、標準入力をList化したりしてるMainクラスから呼び出す予定だし・なんか継承したりしてるYO!!

ちな、Mainを実行して標準入力から入力するのクソ面倒くさいので、
Java編については問題の入力例をパラメータにしたテストクラスとかも作って公開するYO!!

開発・実行環境はこんな感じ

– VSCode
– Java 17
– jUnit 5

元記事を表示

(調査中)Mockitoを使用して、JavaでJarFileオブジェクトのopenConnectionメソッドをモックにする

手順
JarFileオブジェクトをモックする: Mockitoを使用して、JarFileクラスのモックを作成します。
openConnectionメソッドをモックする: モックされたJarFileオブジェクトがopenConnectionメソッドを呼び出した際に、モックされたJarURLConnectionを返すように設定します。
テスト内でモックを使用する: テストコード内で、モックされたJarFileを使用します。
以下はその例です。

“`java
import static org.mockito.Mockito.*;

import java.net.JarURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.jar.JarFile;
import org.junit.jupiter.api.Test;

public class JarFileTest {

@Test
void testOpenConnection() throws Exce

元記事を表示

Javaのメモリ領域(スタック領域、ヒープ領域)について

# 目次
[メモリ](#メモリ)
[スタック領域とは](#%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E9%A0%98%E5%9F%9F%E3%81%A8%E3%81%AF)
[ヒープ領域とは](#%E3%83%92%E3%83%BC%E3%83%97%E9%A0%98%E5%9F%9F%E3%81%A8%E3%81%AF)
[メモリ確保のイメージ](#メモリ確保のイメージ)
[値型のメモリ確保のイメージ](#値型のメモリ確保のイメージ)
[参照型のメモリ確保のイメージ](#参照型のメモリ確保のイメージ)
[おまけ](#おまけ)
[リストとは](#リストとは)
[挿入](#挿入)
[削除](#削除)
[単方向リスト](#単方向リスト)
[循環リスト](#循環リスト)
[参考文献、参考サイト](#%E5%8F%82%E8%80%83%E6%96%87%E7%8C%AE%E5%8F%82%E8%80%83%E3%82%B5%E3%82%A4%E3%83%88)
[関連記事](#関連記事)

# メモリ
プログラムの実行時に利用される記憶領域(メモリ領域)には

元記事を表示

Javaで指定のファイルがテキストファイルかどうか判定する

Javaを用いて指定のファイルがテキストファイルかどうかを判定する方法を調べたので備忘録としてまとめます。

[Apatch Tika](https://tika.apache.org/)を用いてファイルの[MIME TYPE](https://developer.mozilla.org/ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types)を判定してもらう方法が手軽にできてよかったです。

Mavenのライブラリをインポートします。
“`xml:pom.xml

org.apache.tika
tika-core
2.9.2

“`

Apache Tikaを使ってファイルがテキストファイルかどうかを判定するコード例です。

“`java
import org.apache.tika.Tika;
import java.io.File;
import

元記事を表示

OTHERカテゴリの最新記事