- 1. Paiza×Qiitaキャンペーン 全問Javaで解説してみた【C 宝くじ 編】
- 2. [paiza]シリをもげ!(みんなでしりとり (paizaランク B 相当)
- 3. Paiza×Qiitaキャンペーン 全問Javaで解説してみた【C 野球の審判 編】
- 4. Javaで「UNICODE_CASEフラグ(Unicode準拠の文字でも大文字と小文字を区別しない)」の動作を確認してみた
- 5. Paiza×Qiitaキャンペーン 全問Javaで解説してみた【C みかんの仕分け 編】
- 6. [paiza]めくりめくり(神経衰弱(オリジナル) (paizaランク B 相当)
- 7. JavaのStream APIについて、まとめてみました。
- 8. Paiza×Qiitaキャンペーン 全問Javaで解説してみた【C Fizz Buzz 編】
- 9. NullPointerExceptionについて考えてみる。
- 10. Paiza×Qiitaキャンペーン 全問Javaで解説してみた【C 残り物の量 編】
- 11. 解いてみた。「Sランク:島探し」
- 12. 解いてみた。「Sランク:mod7占い」
- 13. Javaで「COMMENTSフラグ(パターンの中にコメントを記述する)」の動作を確認してみた
- 14. Paiza×Qiitaキャンペーン 全問Javaで解説してみた【D N倍の文字列 編】
- 15. [paiza]売り切れ!在庫の山!(【殿堂入りキャンペーン】残り物の量 (paizaランク C 相当)
- 16. [paiza]フィズバズ(Fizz Buzz (paizaランク C 相当)
- 17. [paiza]アルミ缶の上にある。。。(みかんの仕分け (paizaランク C 相当)
- 18. (調査中)Mockitoを使用して、JavaでJarFileオブジェクトのopenConnectionメソッドをモックにする
- 19. Javaのメモリ領域(スタック領域、ヒープ領域)について
- 20. 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
– 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
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
– mavenpom.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
– mavenpom.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