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

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

いくつかの言語での全角スペースの挙動

## 最初に

言語によって、全角スペースが混入したときの挙動が違います。

各言語によって、どのような違いがあるのだろうかと思い、簡単に調べてみました。

### Python・Javaは、検知してエラー

全角スペースが混じってるだけで、それを検知しエラーとして教えてくれました。

– Python(3.8.2)は、`SyntaxError: invalid character in identifier`と表示。
– Java(openjdk 15)は、`error: illegal character: ‘\u3000’`と表示。

Javaは文字コードまで教えてくれるので、親切ですね。

### Rubyは、変数名に扱えてしまう

Rubyでは、日本語も変数名に使うことができ、全角スペースも変数名に使えてしまいます。

“`fullwidth_space.ruby
  = “Hello, world!”
p   # “Hello, world!”
“`

上記のコードは、全角スペースに文字列を代入して出力してます。

そういうわけで、もし全角スペースが混じってもそれを検知

元記事を表示

Javaで何か作ってみる(2022/11/22 Day33)

## 今日やった事
– Javaの動画教材の演習問題である、ケーキ屋プログラムの作成を行った。
→コミットした内容は[こちら](https://github.com/takamatsuryota3/Java/commit/4e891f4fedc4fbed3bb844dd47bb3fff3ff84d3e)
## 参考にしたもの
– [【超絶丁寧解説】Javaプログラミングをゼロから学ぶ!絶対挫折させない「基礎入門」講座【講師評価4.3】](https://www.udemy.com/course/uz-java-kiso/)
→今回取り組んだのは、この動画教材の中の、**J1-EX1_総合演習(アルゴリズム)** の**総合演習(ケーキ屋プログラムの作成)** になる。
## 所感
– 例外処理も含めて、ケーキ屋プログラムを完成させる事が出来た。
## 明日の予定
– 動画教材の続きから進めていく。

元記事を表示

Javaで何か作ってみる(2022/11/21 Day32)

## 今日やった事
– Udemyの動画教材を少し見た。(**J1-16_パッケージ** まで見た。)
## 参考にしたもの
– [【超絶丁寧解説】Javaプログラミングをゼロから学ぶ!絶対挫折させない「基礎入門」講座【講師評価4.3】](https://www.udemy.com/course/uz-java-kiso/)
→ Javaの勉強に使用しているUdemyの動画教材。
## 所感
– 内容理解は完璧。
– springそろそろ着手したいな。
→動画教材探しておくか。
## 明日の予定
– 引き続き、動画教材を進めていく。

元記事を表示

Stack Memory vs Heap Memory in Java

Stack Memory vs Heap Memory in Java. We all know Java doesn’t require programmers’ intervention to manage the memory. Its Garbage Collector frees up the memory when not used. So, why does a Java programmer need to understand memory management then?

Although you don’t have to worry about destroying objects, thanks to Garbag

元記事を表示

Mac×OpenCV×JavaでWEBカメラに映る顔を認識してみた。

はじめに

こんにちは。ちゃむじです。
前回OpenCVの環境構築をしてから、OpenCVが自分の中でちょっとしたマイブームになっていましたので、
今回はWEBカメラに映る顔を認識してみました。
備忘録がてら投稿します。

環境構築は前回の投稿にあるので割愛します。
詳しくは[こちら](https://qiita.com/Chamuji/items/dacf3aa0de17aa6cc883)

完成ファイル

“`
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Mat

元記事を表示

#17 Spring バリデーションの実行順序の変更

# #17 Spring バリデーションの実行順序の変更
前回は自分で設定したエラーメッセージが表示されるよう設定しました。
しかし、それだけでは不要なエラーメッセージも同時に表示されてしまうので、今回はエラーメッセージの表示順を設定します。

# 前提条件
この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため所々説明は省略します。

# 前回まで
前回の記事は以下になります。

https://qiita.com/Jackoguro/items/ddd68a48b1b99206b68c

# 構築環境
1. 各バージョン
Spring Boot ver 2.7.5
jquery ver 3.6.1
bootstrap ver 5.2.2
webjars-locator ver 0.46

2. 依存関係
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884987/f55dc9b5-e7b

元記事を表示

Spring boot + Ajax 簡易掲示板作成 (削除機能)

# 最初に
今回の記事は前回投稿した[Spring boot + Ajax 簡易掲示板作成 (編集機能)](https://qiita.com/Sesoniso/items/bd40bf9b55790f3f917a)に削除機能を追加するための記事となります。
主のプロジェクト、環境構築など記事に記載していますので先にそちらをご覧ください。
[Spring boot + Ajax 簡易掲示板作成 (投稿機能)](https://qiita.com/Sesoniso/items/a3c2b2c32bff09bfbbd5)

・本記事の完成ページ

![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2645309/d9bf3783-0951-4462-8157-1ae5e6bcb62d.png)

# 1. サンプルコード
## 1.1 HTMLファイル
“`html:/src/main/resources/templates/top.html

Java: Ant で war ファイルを作成

こちらのページを参考にしました。
[Antの動作確認](http://msugai.fc2web.com/java/servlet/build_ant02.html)

## ソースコード

ツリー

“`text
$ tree
.
├── helloworld.xml
└── src
└── HelloWorld.java
“`

“`java:src/HelloWorld.java
import java.util.Date;
import java.text.SimpleDateFormat;

class HelloWorld {
public static void main(String str[]) {
System.out.println(“Hello, World”);
System.out.println(“これはテストです。”);
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd’T’HH:mm:ss.SZ”);
Sys

元記事を表示

Leetcode 279. Perfect Squares

# 279. Perfect Squares

https://leetcode.com/problems/perfect-squares/

## アプローチ 1
### DP

“`java
package com.leetcode.midium;

import java.util.Arrays;

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

}

public static int numSquares(int n) {
int[] dp = new int[n + 1];
Arrays.fill(dp, Integer.MAX_VALUE);
dp[0] = 0;
for (int i = 1; i <= n; i++) { for (int j = 1; j * j <= i; j++) { dp[i] = Math.min(

元記事を表示

#16 Spring バリデーションのエラーメッセージの変更

# #16 Spring バリデーションのエラーメッセージの変更
今回はバリデーションにより発生するエラーメッセージを自分で作成したエラーメッセージに変更していきます。

# 前提条件
この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため、所々説明は省略します。

# 前回まで
Formクラスにバリデーション用のアノテーションを付与し、バリデーションによる入力チェックを行いました。

https://qiita.com/Jackoguro/items/f5a958dd03cf4f23562f

# 構築環境
1. 各バージョン
Spring Boot ver 2.7.5
jquery ver 3.6.1
bootstrap ver 5.2.2
webjars-locator ver 0.46

2. 依存関係
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884987/a3670e62-9

元記事を表示

Javaで暗号化

# はじめに
最近なら AES256/GCM 使っておけば大丈夫な気がするので、その使い方。
バイト列を入力して暗号化されたバイト列を取得、復号してバイト列を得るまで。
JavaでCipherを使う場合、GCMのtagは暗号文に含まれる模様。このため、.NETなど、別のライブラリで復号する時はtagを分離しないといけないっぽい。

# 暗号鍵
AES256にするので、鍵長は当然256bitにする必要がある。
パスワードを入力して復号するなら、パスワードのSHA256を鍵に使えば良いかも。自動生成することもできる。

文字列からSHA256を取得して、鍵にするならこんな感じ。(例外処理は適当なので、使うときはちゃんと作る)

“`Java
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;

.
.
.

public

元記事を表示

機械学習、Java、GridDBを用いた大学院入試の予測

ランダムフォレストは分類予測に使用できる強力なモジュールで、決定木よりも良い性能を発揮します。この記事では、ランダムフォレストモジュールとクリーンなデータセットを組み合わせて、ある大学院への大学生の入学可能性を予測することに焦点を当てます。この問題は、業界でよく知られた予測セットです。機械学習アルゴリズムを実装するために、Javaプログラミングを使用する予定です。この記事では、データマイニングのプロセスについて、業界標準のプロセスに従います。最初に、データを取得し、それを準備し、予測のためのモジュールを作成し、それを実行し、最後に結果を評価することによってそれをテストします。

ソースコードとデータはこちら:

## 必要条件

ランダムフォレストモジュールを作成するにあたり、二次記憶装置として**GridDB**データベースを使用します。**GridDB**をダウンロードおよび設定し、**GridDB**があなたのシステムで稼働していることを確認することが重要です。

必ず以下の

元記事を表示

【static java】静的メンバ

“`java
public static void main(String[] args)
“`
この「static」とはなんだろう。

#### staticとは静的メンバである。
ざっくり簡単に言えば

**「インスタンスを生成しなくてもフィールドやメソッドを利用できる」**

オブジェクト指向の基本原則として「インスタンスの独立性」というものがありインスタンスを生成することにより”独立性を担保”できるので
**今まではインスタンスを生成するごとに違う値を入れられていた**と思う。

“`java:インスタンス生成(例)
Man m1 = new Man();
Man m2 = new Man();
Man m3 = new Man();

//それぞれnameフィールドが用意されていた場合
m1.name = “m1”;
m2.name = “m2”;
m3.name = “m3”;
“`

#### staticを使った利用
大きく分けて 「staticメソッド」「staticフィールド」 の2つ。

“`ja

元記事を表示

#15 Spring バリデーションの実行[正規表現]

# #15 Spring バリデーションの実行
今回はバリデーションを用いて入力可能文字や文字数の制限などを設定していきます。

# 前提条件
この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため、所々説明は省略します。

# 前回まで
前回は型変換に対応するエラーメッセージの処理を行いました。

https://qiita.com/Jackoguro/items/eb04336438522b14dec5

# 構築環境
1. 各バージョン
Spring Boot ver 2.7.5

2. 依存関係
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884987/1389d101-2f33-f675-9441-37e004cf0a43.png)

今回はバリデーションを使用するため、依存関係に“検証“を設定していない人はMavenの場合はpom.xml、gradleの場合はbuild.g

元記事を表示

#14 Spring JavaScript 生年月日から年齢を自動計算[間違いがあったので編集中]

# #14 Spring 生年月日から年齢を自動計算[間違いがあったので編集中]
今回はJavaScriptを用いて生年月日から年齢を自動で求めるようなプログラムを記述していきます。
最初に書いておきますが、入力フォーム内に“/,-“のような数字以外の文字が含まれていても問題なく動作することができました。

# 前回まで
前回は新規登録画面を作成しました。

https://qiita.com/Jackoguro/items/db35aa456341a484254b

入力フォームに誕生日1,2という項目があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884987/3309863c-63ce-537e-5560-f33f61f454bf.png)

誕生日1は“type=”date”“を用いて入力する形式で、誕生日2は“type=”text”“を用いて“yyyy/MM/dd“形式を用いて入力します。

# 構築環境
1. 各バージョン
Spring Boot

元記事を表示

Java コンパイルができない

# 目的
Javaを勉強中にコンパイルができず無駄に時間を浪費したので、備忘録として投稿します。

## 流れ

– 階層とやりたいことの確認
– 発生したエラー
– 解消法

# 階層構造
Eclipseを使用

`tree /f`にて階層を確認

“`cmd
C:\ocjp\workspace\CoffeeChoiceApp>tree /f
“`

“`terminal
C:.
│ .classpath
│ .project

├─.settings
│ org.eclipse.core.resources.prefs
│ org.eclipse.jdt.core.prefs

├─bin
│ └─main

└─src
└─main
BestCoffeeChoiceApp.java
CheckNumber.java
CoffeeTasteList.java
ConnectDatabase.java
Executing

元記事を表示

JavaとGridDBを用いたテキスト分類器

テキストデータは、電子メール、チャットでの会話、ソーシャルメディア、Webサイトなど、あらゆるところに存在します。テキストデータには多くの情報が含まれていますが、その非構造化データの性質上、情報を抽出することが困難な場合があります。非構造化データからインサイトを抽出するには、データの分類に多くの時間とコストがかかります。

自然言語処理(NLP)技術を用いたテキスト分類器は、高速でスケーラブル、かつコスト効率の高い方法でデータを構造化する代替方法を提供します。

テキストの分類は、テキストをグループに分けて整理することで、「テキストタグ付」または「テキスト分類」とも呼ばれます。自然言語処理では、テキストデータを分析し、その内容に応じてあらかじめ定義されたカテゴリーに分類することが可能です。

今回は、JavaとGridDBを使って、テキスト分類器を実装します。テキスト分類器の目的は、メールをspamとhamのどちらかに分類することです。

全ソースとデータはこちらでご覧いただけます。

元記事を表示

イテレータの使用方法まとめ

# 目次
 [1.はじめに](#1-はじめに)
 [2.イテレータとは](#2-イテレータとは)
 [3.イテレータの使用方法](#3-イテレータの使用方法)
 [4.応用編](#4-応用編)

# 1. はじめに
現場での実装時、リスト内の要素除外のためリスト.removeと記述していたのですが、
それだとリストの一番目の要素がなくなり、次の要素に進めなくなるためシスエラーになってしまうという指摘をいただき、イテレータを使用すれば、removeできることを知りました。
(※リストを最後の要素からループすればイテレータを使用せずにremove可能)

今回は復習のため、こちらにまとめていきたいと思います。

# 2. イテレータとは

>イテレータは、集合の要素に順番にアクセスする時に使用するインターフェースです。
集合にはリスト、セット、マップなど複数の種別がありますが、イテレータはそれらにアクセスするための、共通の仕組みを提供します。
イテレータを用いることで、個別の実装を意識せずに、要素へのアクセスを自然に記述できます。

↓上記はこちらの記事から引用させていただきました。

h

元記事を表示

JavaでWord文書の空白行を削除する方法

Word文書を扱っていると、大量の空白行に遭遇することが多く、文書の美観を損ねるだけでなく、文書の読みやすさも損なわれてしまいます。本記事では、無料の専門家向け開発ツール「[Free Spire.Doc for Java](https://jp.e-iceblue.com/introduce/free-spire-doc-for-java.html)」を使って、Word文書内の空白行や段落を素早く削除する方法を紹介します。具体的な操作手順は、以下のとおりです。

## 【依存関係の追加】

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

### 1. Maven

Maven を使用している場合、プロジェクトの pom.xml ファイルに以下のコードを追加することで、簡単にアプリケーションに JAR ファイルをインポートすることができます。

“`XML


com.e-iceblue

元記事を表示

算術演算

# 各プログラミング言語の算術演算

加減乗除の四則演算は大概同じなのですが、剰余が演算子が異なったり、インクリメント、ビット演算の有無などが演算子に影響を与えているパターンがあるので、個人的に整理しておきたいな・・・と。
誤植や追記がございましたら、ご連絡お願い致します。

|プログラミング言語|加算(和)|減算(差)|乗算(積)|除算(商)|除算(商:整数値のみ)|剰余(余)|べき乗
(累乗)|インクリメント|ビット演算|
| :—: | :—: | :—: | :—: | :—: | :—: | :—: | :—: | :—: | :—: |
|Excel | + | – | * | / | |MOD()|^
POWER() |無|有|
|VBA | + | – | * | / | \ |MOD()|^
POWER() |有|有|
|VB.net| + | – | * | / | \ |MOD()|^
POWER() |有|有|
|C | + | – | * | / | | % |math.h

元記事を表示

OTHERカテゴリの最新記事